基于PHP会话的Flash消息

时间:2015-08-14 17:00:07

标签: php flash session

我试图在PHP中创建基于会话的Flash消息:

在register.php页面中,我将会话设置如下:

$_SESSION['flash'] = 'Registered';

然后,在将用户重定向到主页后,我打印了flash消息:

if (isset($_SESSION['flash'])) {
   echo $_SESSION['flash'];
   unset($_SESSION['flash']);
}

会话在两个页面中启动。 问题是: 仅当我删除未设置的功能时才会在主页中显示flash消息,然后始终打印消息。

3 个答案:

答案 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个友好的警报消息。

Example

答案 1 :(得分:2)

请注意,session_unset只会清除sesison的使用情况。该会话仍在用户计算机上。请注意,通过使用session_unset,变量仍然存在。

然而,将session_unset与session_destroy结合使用是实际清除数据的一种更有效的方法。如上例所示,这非常有效,跨浏览器:

callback.__signature__ == 'app.dir.whatever.views.SomeView'

答案 2 :(得分:2)

我刚刚在重定向用户之后添加exit来解决我的问题,以逃避注册页面的执行,因此在下一页中使用会话之前,不会在当前页面中取消设置会话。