php - CodeIgniter 如何知道 cookie 持有有效的 session 数据?

标签 php codeigniter cookies session

在 CodeIgniter 中, session 数据默认保存在 cookie 中。但是我的服务器上也必须有一个文件(命名为 session ID)来验证数据(在 cookie 中)是否有效,或者我错了吗?

我正在搜索保存 session 的位置。我已经查看了“session.save_path”目录 (/var/lib/php5),但在这个目录中只有其他 session ,但没有 CodeIgniter session 。

我也没有将 session 保存在数据库中,那么 CodeIgniter 如何知道数据(在 cookie 中)是有效的?

最佳答案

native codeigniter 安装覆盖了常规的 PHP session 处理并使用他们自己的数据处理系统,这就是您无法在正常位置找到它的原因。 (我还要提到,我个人认为它的实现方式有点不安全,因为您的所有 session 数据都直接存储在用户浏览器 session cookie 中。)

您可以按照 Residuum 的建议进行操作,并通过 codeigniter session 库回溯并找到它的存储位置,或者您可以使用 OB_Session 之类的东西覆盖 session 处理。 ( http://bleakview.orgfree.com/obsession/ )

我强烈建议您安装 OB_Session 或类似的东西,因为它随后将使用 native PHP session 处理,并且它会阻止您的 cookie A) 变得太大并因浏览器字节限制而崩溃,或 B)允许将敏感的用户数据存储在客户端。

最后,根据您尝试执行的操作,我将遵循 CI 用户指南说明并将 session 数据存储在数据库中。 ( http://codeigniter.com/user_guide/libraries/sessions.html ) 这将使您更容易处理数据,甚至更新和扩展 Codeigniter 存储的内容。请记住,即使您将它存储在数据库中,您仍然必须更改为 OB_Session 之类的内容,因为即使更改为数据库,您的 cookie 仍会保存所有数据。

关于php - CodeIgniter 如何知道 cookie 持有有效的 session 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177742/

相关文章:

javascript - 用JS动态添加输入然后用PHP查找?

php - (mySQL 删除重复的数据库条目 WHERE ...

php - Codeigniter 调用非对象上的成员函数 result()

java - 无法访问使用本地 ip 创建的 cookie

java - Liferay:如何从 portlet 添加 cookie

c# - 在 ASP.NET Core 2 中强制使用已知 header 的特定大小写

php - 模型在 MVC 编程中应该走多远?

mysql - 使用 CURDATE() 函数

php - 如何为我的 codeigniter 网站编写 .htaccess 文件

php - 解释正确的mysqli对象的逻辑