为什么不发布这些结果?

问题描述 投票:-1回答:2

处理完表单后,我很难从表单中获取值。我需要你的帮助。

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字段。当您处理表单时,操作是相同的,通过URL传递了表和ID,因此GET就是该ID和表,对于lname,fname和email,它应该通过post来获取它。 。

编辑:这是updateForm函数的表单标记:<form method="post" action="?mode=upd&id='.$id.'&table='.$table.'">

但是由于某些原因,它不会发布值。

php mysql html
2个回答
1
投票

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

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

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

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

$_POST

代替

$HTTP_POST_VARS


0
投票

[请确保您使用的是最新的PHP5版本之一的最新教程。没有一些PHP 3.x充满了不推荐使用的功能;-)

这将使您(以及我们)的生活更加轻松:P

另外,还有一个技巧可以防止您在此脚本中进行大量的SQL注入:您要通过的每一个变种!

您不会在此处逃避ID,这是删除数据库的一个巨大漏洞

© www.soinside.com 2019 - 2024. All rights reserved.