我有一种处理表单的情况,如果在会话变量中存在问题和错误消息,然后在标题重定向之后回显。要清除会话错误消息,我将其设置为null;然而,这样做会导致它根本不被回应。我的代码很长,但这是一个演示行为的例子。
整个文件:
<?php
session_start();
if($_REQUEST['set_session'] == 'true')
{
$_SESSION['error_message'] = '<p>Should be this.</p>';
header('Location: session_test.php');
}
?>
<html>
<head>
</head>
<body>
<?
echo $_SESSION['error_message'];
$_SESSION['error_message'] = '<p>Should not be this.</p>';
?>
<p><a href="session_test.php?set_session=true">Test</a></p>
</body>
有人可以解释为什么我会“不应该这样”而不是“应该是这个”吗?我怎么可能得到我想要的结果。
答案 0 :(得分:3)
我认为如果你在标题之后退出你的脚本,你的问题应该得到解决。使用此:
header('Location: session_test.php');
exit();
即使浏览器转到另一页,脚本也会在调用标题后继续运行。因此,虽然未显示此页面中的回显,但仍会更改错误消息。
答案 1 :(得分:0)
在header
重定向后,您必须exit
,否则脚本会继续执行。