crazy-max/cws-session

该软件包已被废弃,不再维护。未建议替代包。

PHP类,用于操作会话。数据被安全加密,会话存储在数据库中。

1.10.2 2019-10-24 21:52 UTC

This package is auto-updated.

Last update: 2019-11-14 15:43:21 UTC


README

Latest Stable Version Minimum PHP Version Build Status Code Quality Become a sponsor Donate Paypal

⚠️ 废弃项目

该项目已不再维护并被废弃。如有需要,请随意分叉并自行修改。

感谢大家的宝贵反馈和贡献。

CwsSession

PHP类,用于操作会话。数据被安全加密,会话存储在数据库中。

安装

composer require crazy-max/cws-session

下载代码

composer install # or update

入门

在您的数据库中添加一个具有以下结构的表。
您可以更改表名(sessions),但不能更改列。

CREATE TABLE IF NOT EXISTS `sessions` (
  `id` varchar(128) NOT NULL,
  `id_user` int(10) unsigned NOT NULL DEFAULT '0',
  `expire` int(10) unsigned NOT NULL DEFAULT '0',
  `data` text NOT NULL,
  `skey` varchar(128) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

id - 会话ID。
id_user - 您应用程序中的用户ID。如果您想使用它,请使用 getParamUserId/setParamUserId 方法。
expire - 会话缓存过期时间。
data - 会话数据。
skey - 数据加密的唯一密钥。

请参考 tests/test.php 文件示例以获得帮助。

断开所有用户的连接

如果您想从您的PHP应用程序中断开所有用户的连接,请执行以下查询

TRUNCATE TABLE `sessions`;

统计访问者和已连接用户

如果您想统计在您的PHP应用程序中连接的访问者和用户,请执行以下查询

SELECT (SELECT COUNT(*) FROM `sessions` WHERE `id_user` > 0 LIMIT 1) AS nb_connected,
(SELECT COUNT(*) FROM `sessions` WHERE `id_user` = 0 LIMIT 1) AS nb_visitors;

当用户登录时,必须使用 setParamUserId 方法。

示例

方法

process - 启动进程。
start - 每次想要启动新的会话时调用,而不是 session_start()。
regenerate - 重新生成会话并删除旧的会话。它还会在数据库中生成一个新的加密密钥。每次用户成功连接到您的应用程序时使用。
update - 更新特定会话变量(用户代理、IP地址、指纹)。
isActive - 检查会话是否处于活动状态。

getLifetime - 会话生命周期。
setLifetime - 设置会话生命周期(以秒为单位)。
getCookieDomain - 会话cookie的域名。
setCookieDomain - 设置会话cookie的域名(例如:.foo.com)。
getSessionName - 会话名称。
setSessionName - 设置会话名称。(默认PHPSESSID)。
isFpEnable - 指纹启用状态。
setFpEnable - 启用/禁用指纹。
getFpMode - 指纹模式。
setFpModeBasic - 设置指纹模式基本。(默认)
setFpModeShield - 设置指纹模式防护。
getDbExt - 用于存储会话的数据库PHP扩展。
setDbExtMysql - 将用于存储会话的数据库PHP扩展设置为mysql。
setDbExtMysqli - 将用于存储会话的数据库PHP扩展设置为mysqli。
setDbExtPdo - 将用于存储会话的数据库PHP扩展设置为pdo。(默认值)
getDbPdoDriver - 要使用的PDO驱动程序。(如果数据库扩展是Pdo)
setDbPdoDriverFirebird - 将PDO驱动程序设置为firebird。
setDbPdoDriverMysql - 将PDO驱动程序设置为mysql。(默认值)
setDbPdoDriverOci - 将PDO驱动程序设置为oci。
setDbPdoDriverPgsql - 将PDO驱动程序设置为pgsql。
setDbPdoDriverSqlite - 将PDO驱动程序设置为sqlite。
setDbPdoDriverSqlite2 - 将PDO驱动程序设置为sqlite2。
setDbPdoDriverSqlsrv - 将PDO驱动程序设置为sqlsrv。
getDbHost - 数据库主机名或IP地址。
setDbHost - 设置数据库主机名或IP地址。
getDbPort - 数据库端口。
setDbPort - 设置数据库端口。如果您不确定,请留空。
setDbUsername - 设置数据库用户名。
setDbPassword - 设置数据库密码。
getDbName - 数据库名。
setDbName - 设置数据库名。
getDbCharset - 数据库字符集。
setDbCharset - 设置数据库字符集。如果您不确定,请留空。
getDbTableName - 存储会话的数据库表名。
setDbTableName - 设置存储会话的数据库表名(默认为'sessions')。
getParamFp - 会话指纹值。
getParamUserId - 用户ID会话值。
getParamUa - 用户代理会话值。
getParamIp - IP地址会话值。
getParam - 通过键获取会话值。使用此方法代替$_SESSION变量。
setParamUserId - 设置id_user会话值。来自您应用程序的用户ID。
setParam - 设置会话键/值。使用此方法代替$_SESSION变量。
getError - 最后的错误。

我能帮什么忙?

欢迎所有类型的贡献 🙌!展示您支持的最基本方式是给项目加星 🌟,或者提出问题 💬。您也可以通过在GitHub上成为赞助商 👏 或者通过Paypal捐款 来支持此项目,以确保这项旅程无限期地继续下去!🚀

再次感谢您的支持,非常感激!🙏

许可证

MIT。有关详细信息,请参阅LICENSE