变量未设置&表单提交错误问题

时间:2010-08-16 21:31:28

标签: php mysql forms

这部分代码有点麻烦:

if(!empty($_POST['RemoveRequest']) && isset($_POST['RemoveRequest'])){ $action = $_POST['RemoveRequest']; }
echo '<form method="post" action="'.$page_name.'">
<input type="submit" value="[Remove Request]" name="RemoveRequest" /></form></td>'
.'</tr></table>';

if($action == 'RemoveRequest'){

$sql = "DELETE FROM ".TBL_FACTION_REQUESTS." WHERE r_id=$id LIMIT 1";
mysql_query($sql);
header("Location: ".$page_name."");

}

此表单和服务器代码抛出此错误:

  

注意:未定义的变量:第97行的C:\ xampp ..中的动作。

然后记录不会从我的数据库中删除。

我真的很困惑我在这里做错了什么?尝试了一下我自己的调试,但还没有运气。希望有人可以帮助我!

3 个答案:

答案 0 :(得分:1)

看起来你的开场条件没有评估为真 -

if(!empty($_POST['RemoveRequest']) && isset($_POST['RemoveRequest']))

如果此语句未评估为true,则$action未设置。您看到的警告(“未定义变量..”)表示在上述脚本流中第一次遇到$action时没有设置任何值

// action hasn't been set by here..
if($action == 'RemoveRequest'){

如果未设置$action,那么它显然不会评估为RemoveRequest,因此您的数据库查询的代码块将永远不会运行。

调试时,尝试在代码的第二行打印出$action$_POST['RemoveRequest']的值。可能是变量未按照您预期的方式设置到发布到此脚本的表单。

答案 1 :(得分:0)

您是否尝试过包装if命令:

if( !(empty($_POST['RemoveRequest'])) && (isset($_POST['RemoveRequest'])) ){ 
   $action = $_POST['RemoveRequest']; 
}

这是阻止变量未被定义的唯一因素。此外,您可能希望更改value="[Remove Request]",因为它永远不会为if ($action =='RemoveRequest')

评估为真

答案 2 :(得分:0)

  

错误的级别为E_NOTICE。需要   在代码之前添加此代码:

 $action = "";