这部分代码有点麻烦:
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 ..中的动作。
然后记录不会从我的数据库中删除。
我真的很困惑我在这里做错了什么?尝试了一下我自己的调试,但还没有运气。希望有人可以帮助我!
答案 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 = "";