我遇到一种情况,在处理表单时,如果 session 变量中存在问题和错误消息,然后在 header 重定向后回显。为了清除 session 错误消息,我将其设置为 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>
有人可以解释为什么我得到“不应该是这个”而不是“应该是这个”吗?以及我如何才能得到我想要的结果。
最佳答案
我认为如果您在标题后退出脚本,您的问题应该得到解决。使用这个:
header('Location: session_test.php');
exit();
即使浏览器转到另一个页面,脚本也会在调用 header 后继续运行。因此,虽然该页面中的回显没有显示,但错误消息仍然发生了变化。
关于php - 如何使用 PHP session 变量然后更改它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5361694/