【发布时间】:2018-04-19 08:06:15
【问题描述】:
当用户启动我的应用程序时,我使用 session_id() 请求 PHP 会话 ID 字符串。我将此会话 ID 字符串存储在 MySQL 表中。
该应用程序一次可以有数十人登录,我需要能够通过管理员使用的程序终止用户并列出所有活动用户。到目前为止,我还没有找到像terminate_session($session_id) 这样的函数,但我需要能够终止另一个 PHP 用户的会话。有没有简单的方法可以做到这一点?
添加了以下回复:(不是尖叫)
我不想自己用 mysql 表来做。我希望能够调用终止另一个用户的 php 函数......这可能吗?我知道我可以通过将其集成到应用程序表和程序中来自己完成。但是不想做更多的工作,我只想能够使用 session_id() 函数提供的 php session_id 字符串调用一个 php 函数,然后终止该进程。类似于 linux kill 命令。这在php中存在吗???谢谢
【问题讨论】:
-
从数据库中删除行会破坏会话数据,没有看到代码,我不确定你是怎么遇到问题的。 你使用的是custom session handler吗?
-
您可以根据您拥有的 id 删除会话文件,我没有尝试过,但我认为它会正常工作。但如果你真的需要这个,你应该按照@Scuzzy 的建议做
-
@Scuzzy 听起来不像是他将会话数据存储在数据库中,只是记住了 ID。
-
@Barmar 是的,我同意。您需要做的是将会话处理移动到 100% 数据库,并使用自定义会话处理程序写入/读取数据库,或者使用数据库表作为触发器来丢弃基于标准磁盘的会话。当用户加载页面时,您将查询您的表以获取您记录的会话 ID,如果它不存在,则调用会话销毁函数。我转向了数据库会话,而且使用起来更容易。