我正在做一個項目,可以更新員工的姓名,職位,部門和標籤。當用戶沒有向文本框輸入任何東西時,表格更新爲空格
但是,當我做我的項目,它不會更新,我知道我的代碼有問題。你們會不會介意檢查它。
我的php頁面有一個index.php這是主菜單,如果你點擊列表中的員工名字,會彈出一個窗口。彈出的是更新。
我的PHP代碼(現在更新),但是發現錯誤:
<?php
$con=mysql_connect('localhost','root','pss') or die(mysql_error());
mysql_select_db('intra',$con);
if(isset($_POST['submitted']))
{
$sql = "SELECT * FROM gpl_employees_list where emp_id='".$_POST['eid']."'";
$result = mysql_query($sql) or die (mysql_error());
if(!$result || mysql_num_rows($result) <= 0)
{
return false;
}
$qry = "UPDATE gpl_employees_list SET emp_nme = '".$_POST['ename']."', emp_pos = '".$_POST['pos']."', emp_dep = '".$_POST['dep']."', emp_tag = '".$_POST['tag']."' WHERE emp_id = '".$_POST['eid']."' ";
mysql_query($qry) or die (mysql_error());
?><script>window.close();</script><?php
}
?>
*注:這是現在更新,但如果用戶離開文本框的一個空的,它更新還有空格的表格,這是我現在的問題。我如何避免這種情況?我的意思是,如果用戶將一個文本框留空,那麼具有空值的數據仍然必須包含其舊值,但是如何使用此代碼執行此操作?感謝那些誰可以幫助
MisaChan
Pleeeeease確保您合法性檢查該輸入,或者更好的是,使用參數在你的查詢中,在使用這個之前。您正在使用該代碼請求SQL注入攻擊。您需要對emp數據執行preg_match(),理想情況下使用SELECT * FROM gpl_employees_list WHERE emp_id =?;爲您的查詢。 – 2011-05-31 03:22:18
@King Skippus:我已經更改了我的代碼,請參閱Sir CleaverQuack的帖子,這與我現在使用的代碼差不多,儘管仍然存在一點錯誤 – MisaChan 2011-05-31 03:56:13
輸入仍需要清理。永遠不要將用戶提供的輸入直接傳遞到查詢中。請閱讀,特別是底部的「緩解」部分:http://en.wikipedia.org/wiki/SQL_injection – 2011-05-31 04:00:45