我试图在PHP中创建基于会话的Flash消息:
在register.php页面中,我将会话设置如下:
$_SESSION['flash'] = 'Registered';
然后,在将用户重定向到主页后,我打印了flash消息:
if (isset($_SESSION['flash'])) {
echo $_SESSION['flash'];
unset($_SESSION['flash']);
}
会话在两个页面中启动。 问题是: 仅当我删除未设置的功能时才会在主页中显示flash消息,然后始终打印消息。
答案 0 :(得分:5)
我为这类问题写了一个库:https://github.com/tamtamchik/simple-flash。
安装完成后,您可以这样做:
// put message not session
flash('Some error message', 'error');
// print it after redirect
echo flash()->display();
它会生成Bootstrap个友好的警报消息。
答案 1 :(得分:2)
请注意,session_unset只会清除sesison的使用情况。该会话仍在用户计算机上。请注意,通过使用session_unset,变量仍然存在。
然而,将session_unset与session_destroy结合使用是实际清除数据的一种更有效的方法。如上例所示,这非常有效,跨浏览器:
callback.__signature__ == 'app.dir.whatever.views.SomeView'
答案 2 :(得分:2)
我刚刚在重定向用户之后添加exit来解决我的问题,以逃避注册页面的执行,因此在下一页中使用会话之前,不会在当前页面中取消设置会话。