我无法在处理后从表单中获取值。我需要你的帮助。
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);只输出表单,有email,lname,fname字段。当你处理表单时,动作是相同的,w /表和id通过url传递,所以它GET是id和表那样,对于lname,fname和email,它应该通过post抓取它
编辑:这是updateForm函数的表单标记:<form method="post" action="?mode=upd&id='.$id.'&table='.$table.'">
但由于某种原因,它没有发布值。
答案 0 :(得分:1)
表单的method属性是否设置为post?
<form method = "post" action = "...">
并且所有输入的名称属性都设置正确吗?
您是否查看了html输出以确保没有语法错误?另外,请尝试使用
$_POST
而不是
$HTTP_POST_VARS
答案 1 :(得分:0)
请确保您使用最新版本的PHP5之一的最新教程。不是PHP 3.x充满了已弃用的功能; - )
这将使你的生活(和我们的生活)变得更加容易:P
顺便提一下,这个脚本会阻止您在此脚本中进行主要的SQL注入: ESCAPE每个变量你都要通过!!
你不能在这里转义ID,这是一个很好的漏洞,可以放弃你的数据库