PHP 中的“到处注销”是如何工作的?

2024-03-17

我刚刚发现 stackoverflow 有一个链接可以注销每台已登录的计算机。

所以..我考虑了如何在 PHP 中实现相同的功能。我想出了使用 session_set_save_haldner 来控制 write() 方法。在 write() 方法中,我可以使会话文件以用户的用户名开头。例如,用户 john 可能拥有会话文件 john_kdkajdkak 和 john_29039dla。当约翰单击“到处注销”时,我可以编写一段代码来查找以“john”开头的文件名,然后将其删除以清除会话。

还有其他更好的解决方案吗?如果你已经让它发挥作用,你是如何实施它的?


使用数据库来保存会话数据。

Using session_set_save_handler http://php.net/manual/en/function.session-set-save-handler.php您可以为用户会话推出自己的数据库存储后端 - asessions有一个user_id外键,与users桌子。 “到处注销”按钮会触发简单的DELETE FROM sessions WHERE user_id = 1234并使用户的每个会话无效。

您还可以轻松地将其他列添加到session表 - 例如,存储会话的 IP 地址,以便用户可以查看其他会话从哪里登录。

使用数据库以获得灵活性和性能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 中的“到处注销”是如何工作的? 的相关文章

随机推荐

  • Delphi XE AnsiStrings 带有转义组合变音符号

    将包含转义组合变音标记 如 Fu u0308rst 的 Delphi XE AnsiString 转换为友好的 WideString F rst 的最佳方法是什么 我知道这并不总是适用于所有组合 但应该支持常见的拉丁语块 而无需自己构建愚蠢
  • WP7 - 水平滚动列表框的问题

    我需要一个水平滚动的列表框 并且我遵循了与此相关的其他几个问题提出的关于如何实现的建议 我目前所拥有的确实水平滚动 但在滑动结束时 它不会停留在我滚动到的位置 它会恢复到原始显示 有点像它的一块松紧带 在滑动后返回到其原始位置它被拉伸了 我
  • 使用dispatchEvent获得焦点事件

    当我触发一个focus事件与dispatchEvent在输入框上 其onfocus被调用 但在 UI 上输入框未获得焦点 这种行为有什么原因吗 var test document getElementById test test onfoc
  • 是否可以部分解码和更新 JSON? (去)

    我只需要解码和更新 json 对象的特定值 问题是我不知道该对象的完整结构 coding json 包 忽略 截断结构中未提供的字段 因此对这些字段进行编码会丢失 我想知道是否可以只解组我知道的结构 更新它 然后编组它 而不截断 删除未知的
  • 登录 Facebook 后如何重定向 url?

    我创建了一个 Django 应用程序 并通过 Facebook 连接到该应用程序 现在 当我单击 Facebook 登录按钮时 会弹出 oauth 页面 当我提供用户名和密码时 它会关闭 而不会实际将页面重定向到任何页面 但是当我在新选项卡
  • 如何避免graphviz中的重叠节点?

    我正在尝试绘制一个包含许多节点和边的图 然而 该图变得过于笨拙 节点和边重叠 我尝试了 未成功 以下所有方法或这些方法的组合 size 12 0 20 0 margin 0 0 len 1 0 我在用neato生成一个 png 文件 尺寸规
  • 删除一行后如何刷新jquery数据表

    数据表中的每一行都有一个删除按钮 单击删除按钮后 我将调用以下代码 deleteButton live click function var this this var url this attr id example fnReloadAj
  • 如何在 ASP.Net CreateUserWizard 中获取新注册用户的用户 ID?

    如何在 ASP Net CreateUserWizard 中获取新注册用户的用户 ID 我有一个页面允许新用户使用 创建用户向导 进行注册 创建用户后 我想使用新用户的用户 ID 和电子邮件在客户详细信息表中插入一行 我尝试在 Create
  • 如何使用 KivyMD 在 NavigationDrawer 内的屏幕之间切换

    我是使用 kivymd 的初学者 并尝试使用 KivyMD 在 NavigationDrawer 内的屏幕之间切换 我正在阅读一些文档并最终得到了这段代码 但它对我不起作用 from kivy lang import Builder fro
  • 可以在不使用 Heroku Toolbelt 的情况下部署 Rails 应用程序吗?如果是这样,怎么办?

    我想在不使用 Heroku ToolBelt 的情况下部署 Rails 应用程序 是否可以 如果是这样 怎么办 我只能使用 Heroku 仪表板 我不允许使用任何其他云服务 我必须运行 PostgreSQL 命令 添加附加组件并设置配置变量
  • firebase login:ci 是否可以访问我的所有项目?

    我正在使用firebase login ciCI CD 的代币 但没有足够的有关令牌的文档 它是否可以访问我的帐户有权访问的所有 Firebase 项目 还是只能访问当前活动的项目 我在哪里可以看到所有代币及其活动的列表 我想要的解决方案是
  • python read_fwf 错误:“python-fwf 解析器不支持 dtype”

    使用 python 2 7 5 和 pandas 0 12 0 我尝试使用 pd io parsers read fwf 将固定宽度字体文本文件导入到 DataFrame 中 我导入的值都是数字 但保留前导零很重要 因此我想将数据类型指定为
  • ORA-00979不是一个group by表达式

    我通过以下查询收到 ORA 00979 SELECT cr review sk cr cs sk cr full name tolist to char cf fact date mm dd yyyy appt cs cs id cr tr
  • 将标量和数组(任意维度)从 Fortran 传递到 C

    我有以下名为的 Fortran 子例程show value调用一个名为的 C 函数show value INTERFACE SUBROUTINE show value variable BIND C name show value USE
  • 使用 Google Closure Compiler 编译 jQuery

    有没有人针对 Google 新发布的版本编译过 jQueryClosure http code google com closure compiler 编译器 据报道 代码大小得到了巨大的节省 我很好奇如果用它来编译 jQuery 有什么好
  • 在 ASP.NET MVC 页面上使用实体框架更新数据库记录时出错

    我有一个 ASP NET 页面 可以更新选定记录的注册用户地址详细信息 下面是我从控制器调用的更新方法 当我打电话时ApplyPropertyChanges方法 我收到错误 使用实体框架更新记录时有人遇到同样的错误吗 感谢您的回复 错误信息
  • ASP.NET如何从公共静态方法调用clientscript

    我将在公共静态方法中使用以下 ClientScript 函数 VS2010 C 但它给了我一些错误 我想将它用于带有 parent 目标的响应重定向 ClientScript RegisterStartupScript GetType Lo
  • GameObject 不允许有多个孩子

    所以基本上我试图将一堆孩子添加到游戏对象中 父游戏对象被称为SnakeHead当所有其他游戏对象被调用时SnakeBodyParts public class GameController MonoBehaviour public Game
  • 64位CLR可以使用压缩指针吗?

    我读过一些关于一些 64 位 Java VM 实现中的压缩对象指针的内容 据我了解 其原理是将引用存储为从一个对象到另一个对象的相对 32 位地址偏移量 而不是完整的 64 位指针 以获取内存 我认为这种优化目前还没有应用于 NET CLR
  • PHP 中的“到处注销”是如何工作的?

    我刚刚发现 stackoverflow 有一个链接可以注销每台已登录的计算机 所以 我考虑了如何在 PHP 中实现相同的功能 我想出了使用 session set save haldner 来控制 write 方法 在 write 方法中