我无法从表单中处理值。我需要你的帮助。为什么不发布这些结果?
function updateUser($table, $id) {
if($_POST) {
processUpdate($table, $id);
} else {
updateForm($table, $id);
}
}
function processUpdate($table, $id) {
print $table; //testing
print $id; //testing
$email=addslashes($HTTP_POST_VARS['email']);
$lname=addslashes($HTTP_POST_VARS['lname']);
$fname=addslashes($HTTP_POST_VARS['fname']);
print $lname;
//which table do we update
switch($table) {
case "maillist":
$result = mysql_query("UPDATE $table SET email='$email', lname='$lname', fname='$fname' WHERE id='$id'")
or die(mysql_error());
break;
}
}
函数updateForm($ table,$ id);只是输出表单,具有电子邮件,lname,fname字段。而当你处理表单时,动作是一样的,w /表和id通过url传递,所以它的GET就是这样的id和table,对于lname,fname和email,它应该通过post来获取。
编辑:这是形式的标签是什么样的updateForm功能:<form method="post" action="?mode=upd&id='.$id.'&table='.$table.'">
但由于某些原因,它没有发布值。
你应该看一看函数mysql_escape_string而是mysql_real_escape_string和addslashes出于安全原因的。 – 2009-06-11 14:04:34
在使用它之前,您应该对您的ID进行is_numeric检查(无需转义,因为它必须是整数)。 请更新您的代码...其他人会错误地复制/粘贴您在那里的内容。 – 2009-06-11 14:14:56