不确定这是否正确,但我意识到一些有趣的东西,也许是我还没有学到的东西。
所以我从admin.php
提交了一份提交表单
(表格发布到addcar.php)。当addcar.php
完成执行时,它会将用户返回到admin.php页面,并显示成功消息,如下所示:
$_SESSION['Message'] = "Success";
header("Location: admin.php?Message=".$_SESSION['Message']);
在admin.php上,我有以下代码来检查返回的消息,以便显示成功消息:
<?php
if(isset($_REQUEST['Message'])){
echo '<script>alert("Added");</script>';
unset($_SESSION['Message']);}
?>
但是,isset
似乎正在检查?Message=
,而不是实际的$_SESSION['Message']
变量!这种情况是因为如果我修改了url并包含?Message = TEST123,它仍会执行成功消息。为什么会这样?不应该检查变量而不是返回URL中的文本吗?
答案 0 :(得分:1)
1)$ _REQUEST [&#39;消息&#39;] - 检查查询字符串参数&#39;消息&#39;不是会话变量,是的,它检查变量&#39;消息&#39;。
2)isset仅检查查询参数&#39;消息&#39;设定与否,并不关心它的价值是什么。我想你需要这样的东西。
if(isset($_REQUEST['Message']) && $_REQUEST['Message']=='success')
{
...........
}