为什么不发布这些结果呢?

时间:2008-10-10 04:17:38

标签: php mysql html

我无法在处理后从表单中获取值。我需要你的帮助。

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.'">

但由于某种原因,它没有发布值。

2 个答案:

答案 0 :(得分:1)

表单的method属性是否设置为post?

<form method = "post" action = "...">

并且所有输入的名称属性都设置正确吗?

您是否查看了html输出以确保没有语法错误?另外,请尝试使用

$_POST

而不是

$HTTP_POST_VARS

答案 1 :(得分:0)

请确保您使用最新版本的PHP5之一的最新教程。不是PHP 3.x充满了已弃用的功能; - )

这将使你的生活(和我们的生活)变得更加容易:P

顺便提一下,这个脚本会阻止您在此脚本中进行主要的SQL注入: ESCAPE每个变量你都要通过!!

你不能在这里转义ID,这是一个很好的漏洞,可以放弃你的数据库