如何创建实时PHP会话控制?我的意思是,当用户登录时,我创建了一个PHP会话($_SESSION[]
),并将它存储在一个表(MySQL)中,但是如何知道用户何时注销?我明显可以检测到用户何时注销并销毁会话,但如果用户从未单击,会发生什么情况注销如何在会话关闭时检测到该问题?
谢谢!PHP实时会话控制。怎么样?
0
A
回答
1
这是一个常见问题。当用户不单击注销按钮时,会话将再次可用。通常情况下,垃圾收集器会在定义的时间后清理会话。
http://www.wikihow.com/Create-a-Secure-Session-Managment-System-in-PHP-and-MySQL
这里是一个很好的教程如何建立一个MySQL的会话处理程序。所以让PHP管理这个部分。
重要组成部分,是在这里:
<?php
// set our custom session functions.
session_set_save_handler(array($this, 'open'),
array($this, 'close'),
array($this, 'read'),
array($this, 'write'),
array($this, 'destroy'),
array($this, 'gc'));
// This line prevents unexpected effects
//when using objects as save handlers.
register_shutdown_function('session_write_close');
?>
您定义清理您的会话功能的最后一个阵列。
-1
我有这个问题,但我解决了通过创建另一个ID,所以我不必使用SESSION ID(我认为它不安全),所以每次用户登录我的系统时,他会得到另一个ID,我的函数检查如果用户有权检查数据库上的用户标识,该用户标识也保存在我的会话中,以检查它是否与我的数据库上的标识相同。
我认为这是另一个安全措施,以确保我只有一个用户登录实例,并且直到现在我都没有问题。
但是,如果您必须知道用户何时断开了您的系统,这将无济于事。
相关问题
- 1. 会话的控制持续时间PHP
- 2. PHP - 会话和控制器
- 3. Plone版本控制,怎么样?
- 4. 视图和控制器彼此不可见?怎么会这样?
- 5. PHP AJAX控制会话变量消失
- 6. Php,会话ID控制不起作用?
- 7. 制作按钮怎么样?
- 8. 问题:控制会话超时
- 9. 一个会话应该在其他会话进入函数之前完成一个php函数,怎么样?
- 10. PHP - 用于临时控制的会话使用
- 11. PHP会话:如果我将会话期限设置为10天,该怎么办?
- 12. 会话获取超时时弹簧控制器@SessionAttribute会发生什么
- 13. 我怎样才能得到实际控制器在后方法
- 14. PHP会话超时
- 15. PHP会话超时
- 16. WebBrowser控制会话共享?
- 17. Laravel5.3会话控制器类
- 18. 会话登录控制
- 19. 我怎样才能控制器功能
- 20. 怎样的raw_input使用控制PWM
- 21. 一起跑时控制器测试失败,单独跑时通过。怎么会这样?
- 22. preg_match:如果有html实体会怎么样?
- 23. 如果Xamarin Forms DependencyService有多个实现会怎么样?
- 24. 同一会话由两个浏览器共享?怎么会这样?
- 25. PHP:存储文件位置...如果被覆盖,会怎么样?
- 26. PHP会话已经开始了怎么办?
- 27. 最佳实践:视图控制器加载时间很长时该怎么办?
- 28. MPMoviePlayerViewController,如果失败会怎么样?
- 29. 如果新建失败会怎么样?
- 30. 在控制器端提交mvc3 ajax。怎么样?
每次用户在您的网站上进行交互时,都可以更新您的表格的时间,并将那些没有充当注销的用户更新。 – harrrrrrry 2015-01-26 20:07:29
你没有。您可以使用每隔* n *秒自动刷新一次的隐藏框架,使用“心跳”或其他方法生成图像或其他东西的ajax – 2015-01-26 20:07:59
会话在定义的超时(默认为24分钟)后自动失效。会话cookie也可以配置为当浏览器窗口关闭时而不是在上一次请求之后终止。 – Dai 2015-01-26 20:08:05