F5 重新执行查询时我的代码:
if (isset($_POST['addnewproject']) )
{
include("query/pm_addnewproject.php");
echo $emailnotificationmessage;
}
为了防止在按 F5 或页面重新加载后重新执行查询,我必须修改标题并将其放在 .php 页面的第一条规则(在任何输出之前)。所以:
if (isset($_POST['addnewproject']) )
{
include("query/pm_addnewproject.php");
header("Location:pm_configureaccounting.php?edit=$_SESSION[accidsession]");
echo $emailnotificationmessage; exit();
}
由于标题,我现在丢失了我想在页面中间某处回显的 $emailnotificationmessage。
当我仍然想回应这个问题时,现在最好做什么?
现在我将 $emailnotificationmessages 更改为 $_SESSION['emailnotificationmessage'] 并在我想要的地方回显它。
但我也需要取消设置此 session ,否则它会一直显示给用户。
所以当我将 echo $_SESSION['bla']
放在页面中间的某个位置时,它在那里有一个值。有用。但是之后我需要清除它,所以当用户再次访问时,它不会显示任何消息,除非再次添加项目。所以我将 $_SESSION['bla'] = "";
放在页面的末尾,这个 SESSION 仍然得到值 ""
?!这怎么可能?
最佳答案
好的。为什么不按以下方式编写代码:
<?php
if (isset($_POST['addnewproject']) )
{
include("query/pm_addnewproject.php");
$_SESSION['emailMsg'] = $emailnotificationmessage;
header("Location:pm_configureaccounting.php?edit=$_SESSION[accidsession]");
exit();
}else{
echo $_SESSION['emailMsg'];
}
?>
关于PHP 包含 mysql 查询,使用 header 来防止查询重新执行,但是在哪里回显通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13160927/