【问题标题】:I want to delete all PHP sessions in all devices in the server我想删除服务器中所有设备中的所有 PHP 会话
【发布时间】:2021-01-28 22:33:50
【问题描述】:

我有一台装有 PHP 和 MySQL 等的服务器。

我想销毁所有连接到这个服务器的会话(cookies)

退出的正常代码

<?php
setcookie("username", "", time()-31536000);
session_start();
session_destroy();   
session_unset();
header("Location: index.html");
?>

【问题讨论】:

  • 你想完成什么?会话几乎可以存储在任何地方(不同的目录、数据库、自定义存储......),并且没有 API 可以直接访问其他用户的会话,更不用说应用程序了。此外,像 username 这样的随机 cookie 是完全不同的业务。
  • 这能回答你的问题吗? How to kill a/all php sessions?

标签: php


【解决方案1】:

您可以使用https://www.php.net/manual/en/function.session-save-path.php session_save_path() 找到会话存储在哪里,然后使用类似的东西删除它们

$files = glob(session_save_path().'*'); 
foreach($files as $f){ 
  if(is_file($f)) {
    unlink($f); 
  }
}

【讨论】:

  • 此代码重置会话状态(删除会话设置中的所有内容,如我的购物车、我的收藏设置等),但不会注销我服务器中的所有计算机和手机会话
  • @YosefAtefFarouck 这是因为会话几乎可以存储在任何地方(不同的目录、数据库、自定义存储...),并且没有 API 可以直接访问其他用户的会话,更不用说应用程序了。
  • 它确实会注销用户。如果您使用会话登录用户,那么删除会话会将他们从您的应用中注销。
  • 没错,这就是我想要的
猜你喜欢
  • 2010-10-15
  • 1970-01-01
  • 2018-12-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多