我在使用PHP中的会话时遇到了一个奇怪的问题。基本上,当用户提交联系表单时,处理脚本在完成时设置会话($_SESSION['action']='sent';
)。然后,用户发送回他们发送的形式从页面,并使用下面的代码会显示一条消息:PHP中奇怪的会话问题
$action = $_SESSION['action'];
if ($action == 'sent')
{
echo '<p>Thank you for contacting us, we will be in touch with you ASAP.</p>';
unset($_SESSION['action']);
}
的会话设置,所以,如果他们刷新页面或导航离开和回来赢得消息将不再显示。
基本上问题是当会话未被设置时,它似乎从脚本的一开始就取消它,以便消息不显示。当会话未设置时,if
语句显然正在运行,但消息未显示。
我以前使用过这个完全相同的脚本,它在其他站点(在同一台服务器上,具有所有相同的设置)上绝对完美地工作。
任何帮助/建议,将不胜感激!
没有什么错码,这是别的东西。你有没有301/302/meta/js重定向可能导致代码执行而不显示?我曾经使用过类似的消息传递机制,这总是让我感到沮丧。 – pharalia 2010-10-01 10:03:14
此过程中涉及的唯一重定向是将用户从联系人脚本发送回页面的那个重定向。它使用代码'header(“location:”。$ page_url);'完成。页面URL变量的设置取决于表单从哪个页面提交,因为它位于网站上的多个页面上。 – thebiggianthead 2010-10-01 10:12:15
这不是什么愚蠢的事情在session_write_close()以前在脚本的某处? – 2010-10-01 11:26:29