ericmann/wp-session-manager

WordPress 的原型会话管理。

安装数: 23,561

依赖项: 1

建议者: 0

安全性: 0

星标: 267

关注者: 28

分支: 45

开放性问题: 7

类型:wordpress-plugin

4.2.0 2019-03-31 03:32 UTC

This package is auto-updated.

Last update: 2024-08-29 04:37:30 UTC


README

WordPress 的会话管理。

描述

$_SESSION 功能添加到 WordPress 中,在需要时利用数据库来支持多服务器安装。

每个访问者,无论是登录还是未登录,都会被分配一个会话。默认情况下,会话数据将存储在 WordPress 数据库中,以处理负载均衡问题,如果使用多个应用服务器。此外,会话集合也将存储在 内存 中,以便在 WordPress 中快速使用。

存储在数据库中的会话数据可以加密以提供更好的安全性。

安装

手动安装

  1. 将整个 /wp-session-manager 文件夹上传到 /wp-content/plugins/ 目录。
  2. 通过 WordPress 的 '插件' 菜单激活插件。
  3. 在您的代码中使用 $_SESSION

常见问题解答

如何添加会话变量?

只需使用超级全局 $_SESSION 数组即可。

$_SESSION['user_name'] = 'User Name';                            // A string
$_SESSION['user_contact'] = array( 'email' => 'user@name.com' ); // An array
$_SESSION['user_obj'] = new WP_User( 1 );                        // An object

会话变量存在多长时间?

这取决于您 PHP 安装的配置。请阅读 PHP 手册 了解更多配置细节。

我能否不创建新表就使用此插件?

绝对可以!从版本 2.0 开始,此插件将为 WordPress 创建一个新表来存储会话数据。通常,与使用选项进行数据存储相比,这从长远来看效率更高。但是,如果您的系统不允许创建表,请将以下内容添加到 wp-config.php 中,以使用选项表

define( 'WP_SESSION_USE_OPTIONS', true );

我得到一个错误说我的 PHP 版本过时了。为什么?

PHP 5.6 已于 2018 年 12 月被指定为生命周期结束,并停止接收安全补丁。PHP 7.0 也在 2018 年 12 月被标记为生命周期结束。WP Session Manager 支持的最低 PHP 版本是 PHP 7.1。

如果您的服务器运行的是较旧的 PHP 版本,则会话系统 将不会工作! 为了避免触发 PHP 错误,插件将输出此通知以升级并静默禁用自己。您不会看到 PHP 错误,但您也不会获得会话支持。

联系您的托管提供商或系统管理员以升级您的服务器。

我得到一个错误说另一个插件正在设置会话。我该怎么办?

WP Session Manager 用自己的自定义处理程序覆盖了 PHP 的默认会话实现。不幸的是,如果我们已经激活了一个会话,我们无法交换一个新的处理程序。此插件通过 plugins_loaded 钩子尽可能早地设置事情,但如果您的其他插件(或主题)中有代码尝试在 WP Session Manager 加载之前调用 session_start(),则自定义处理程序将根本不起作用。

检查您的其他插件,并尝试找到干扰的那个。然后,联系开发者解释冲突,看看他们是否有修复方案。

屏幕截图

更新日志

4.2.0

  • 更新:将捐赠链接从 PayPal 更改为 Patreon。
  • 修复:禁用 cron 运行的初始化程序。

4.1.1

  • 修复:使用 function_exists() 检查来防御性保护已弃用的函数,以避免与其他系统发生冲突。
  • 修复:如果会话被禁用,则禁用初始化程序。

4.1.0

  • 修复:添加一些防御措施,以确保在加载系统之前,最终用户正在运行正确的PHP版本。
  • 修复:消除另一种插件或主题首先创建会话的竞争条件。
  • 修复:安排一个cron任务来自动删除过期的会话。

4.0.0

  • 新功能:添加一个基于对象缓存的处理程序,如果可用,利用Redis或Memcached以实现更快的查询。
  • 新功能:采用Contributor Covenant(v1.4)作为项目的官方行为准则。
  • 更新:由于版本过时而提高最低PHP要求。
  • 修复:在数据库表存在之前创建会话的竞争条件。
  • 修复:在从数据库中删除会话时,确保全局变量$wpdb尚未设置时的竞争条件。
  • 修复:从存储的数据表中删除不必要的整数会话ID。

3.0.4

  • 更新:添加对wp_install钩子的支持,以立即创建自定义表。

3.0.3

  • 修复:修复readme中的代码块。
  • 修复:在另一个插件已启动会话的情况下,采用更防御性的方法启动会话。

3.0.2

  • 修复:为已弃用的WP_Session对象添加正确的数组访问支持。

3.0.1

  • 更新:拉取Sessionz修复。

3.0.0

  • 更新:重构以使用Sessionz。
  • 更新:如果设置了WP_SESSION_ENC_KEY,则添加静态加密。

2.0.2

  • 修复:将数据存储迁移连接到会话初始化钩子,以确保其运行。
  • 修复:在所有数据被删除时清理会话。

2.0.1

  • 修复:修复未返回实际存储会话数据的数据存储。

2.0.0

  • 更新:使用表而不是选项来存储会话数据。

1.2.2

  • 更新:使用正则表达式模式匹配来确保会话ID在进入/离开数据库时相同,以解决编码差异。

1.2.1

  • 更新:添加对setcookie参数的额外过滤器。
  • 更新:公开会话ID。
  • 修复:更好地处理格式不正确或损坏的会话名称。

1.2.0

  • 更新:增强插件组织。
  • 更新:添加WP_CLI对会话管理的支持。
  • 更新:添加Composer定义。
  • 修复:拆分旧会话的删除,以防止在负载下查询超时。

1.1.2

  • 修复一个竞争条件,其中会话过期选项可能意外设置为自动加载。
  • 将垃圾收集程序运行时间设置为每小时一次,以减轻大型网站上长时间运行的任务。

1.1.1

  • 修复在实例化时未正确设置会话过期的问题。

1.1

  • 实现Recursive_ArrayAccess以提供多维数组支持。
  • 会话数据的更好过期。
  • 实现垃圾收集以保持数据库清洁。

1.0.2

  • 切换到对象持久性而不是转瞬即逝。

1.0.1

  • 更改实现以避免使用全局变量(仍然注册以方便使用)。

1.0

  • 第一个版本

升级通知

4.0 本版本需要PHP 7.1或更高版本。

3.0 本版本需要PHP 5.6或更高版本,并使用Composer驱动的自动加载来整合Sessionz以实现透明的会话管理。

2.0

本版本将为存储会话数据创建一个新的数据库表!如果您不希望有这样的表,请将wp-config.php中的WP_SESSION_USE_OPTIONS常量设置为true!升级将删除所有现有会话!

1.0

第一个版本

更多信息

贡献者: ericmann
捐赠链接: https://www.patreon.com/user?u=16402577
标签: 会话
至少需要 4.7
测试到 5.1.1
需要PHP 7.1
稳定标签 4.2.0
许可: GPLv2或更高版本
许可URI: https://gnu.ac.cn/licenses/gpl-2.0.html