【问题标题】:how can i search the server for a php session?我如何在服务器上搜索 php 会话?
【发布时间】:2013-05-25 06:03:14
【问题描述】:

如果在服务器上创建了 PHP 会话,最好的搜索方式是什么?

例如,将名称 Joe 存储在会话中的某个位置,然后在 Joe 关闭他的浏览器后,如果 Joe 的会话仍然存在于服务器(即尚未过期)?

【问题讨论】:

  • 谢谢,是的,我想我必须将信息保存到数据库中,然后在每个页面加载时检查:|
  • 顺便说一句,html5具有存储会话存储和本地存储功能的属性,您应该研究一下,如果您不想将会话保存在数据库中,我相信这可以解决您的问题..
  • @Dinesh 嗯?当您关闭浏览器时,它可能会删除 PHPSESSID cookie,但服务器无法知道客户端关闭了他的浏览器,因此不会删除他的会话数据。
  • @Dinesh 我想知道,当我们关闭浏览器时有一些会话可用。考虑是否我设置了一个会话$_SESSION['name'] = 'Dinesh' 并且我关闭了,然后我检查了同一个会话,它显示了会话将存在。我不知道..它将如何/如何存储。

标签: php session


【解决方案1】:

会话数据通常存储在服务器的临时目录中(session.save_path 设置)。

虽然理论上可以搜索该目录,检查每个会话文件,打开它,然后查看它是否是 Joe 的会话,但这不是一个干净的方法,并且有很多方法可以破坏它 - 例如,如果服务器不会为您提供临时目录中的文件列表。或者如果用户同时有多个活动会话怎么办?

如果你真的需要这个,你可能应该创建一个custom session handler,将其数据存储在它自己的目录或数据库中。对于该自定义处理程序,您可以实现一个接口,该接口允许您查询某个用户是否已登录,或者是否存在特定会话。

【讨论】:

    【解决方案2】:

    在服务器中使用指令 session.save_path 检查设置为在 php 中存储会话的路径

    然后尝试使用 session_decode() 方法解码其中的文件

    更多信息可以在下面的链接中找到

    Location of session files

    Reading Session Data

    【讨论】:

    • 如果你能确保它在你的服务器环境中工作,这是一个不错的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多