检查文本而不是会话变量

时间:2018-04-20 14:27:32

标签: php html

不确定这是否正确,但我意识到一些有趣的东西,也许是我还没有学到的东西。

所以我从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中的文本吗?

1 个答案:

答案 0 :(得分:1)

1)$ _REQUEST [&#39;消息&#39;] - 检查查询字符串参数&#39;消息&#39;不是会话变量,是的,它检查变量&#39;消息&#39;。
2)isset仅检查查询参数&#39;消息&#39;设定与否,并不关心它的价值是什么。我想你需要这样的东西。

if(isset($_REQUEST['Message']) && $_REQUEST['Message']=='success')
{
    ...........
}