我听到过关于这个主题的不同反应,那么什么是破坏PHP会话的可靠方法呢?
session_start();
if(isset($_SESSION['foo'])) {
unset($_SESSION['foo'];
...
}
session_destroy();
Run Code Online (Sandbox Code Playgroud)
在最简单的情况下,这是否足以真正终止用户和服务器之间的会话?
用户成功登录后,我将login = true存储在数据库中.但是如何在不单击注销按钮的情况下关闭浏览器来检查用户是否已注销?此外,如何将已停用10分钟的用户重定向到登录页面?
我正在使用php和mysql.任何帮助,将不胜感激.
编辑:对不起,如果我的问题不明确.我确实使用会话来存储它们是否已登录.但是,现在我想将信息存储在数据库中,以便我可以在其他页面上显示它们的状态.假设user1有3个朋友.当显示他的所有朋友时,user1想知道他的朋友是在线还是离线.这就是我要的.有什么建议吗?
我有用户登录/注销应用程序:我想破坏会话,当我关闭浏览器((所有标签)),IE,Firefox工作时它的工作正常.但是当用户关闭单个选项卡时,我想破坏会话.我在用 :
session_set_cookie_params(0);
session_start();
Run Code Online (Sandbox Code Playgroud) 我在php中创建了一个登录系统,具有注销功能等.但我需要在窗口关闭时销毁会话.这需要"即时"或尽可能快地将用户状态更改为脱机.我真的不想在会话上设置时间,因为这对于必须一直登录的用户来说很烦人.
欢迎任何建议,谢谢.=)
当用户进入网站时,它会发送默认语言,同时会强制用户从列表中
选择一种语言... 当用户选择语言时,它会设置$ _SESSION ['language'] = $ _POST [ 'lg'];
同时设置另一个$ _SESSION ['sestime'] = time();
通过本次会议,我可以做到这一点:
if(isset($_SESSION['sestime']) && (time() - $_SESSION['sestime'] > 600)) {
session_unset(); session_destroy();
header("Location: $sred");
exit;
}
$_SESSION['sestime'] = time();
Run Code Online (Sandbox Code Playgroud)
如果在10分钟内没有任何活动,它会销毁/删除/取消任何会话,其想法是再次询问lanaguage ...现在,这是“有效的”,但是我想要的是“检测”当用户将要关闭浏览器选项卡时,网站选项卡...如果用户关闭该选项卡,则“破坏/删除/取消设置”该网站的任何会话...
这可能吗?
如何在浏览器窗口关闭时使会话失效