php - CodeIgniter session 和常规 session 可以共存吗?

标签 php codeigniter session

CodeIgniter 用户指南版本 2.1.4 是这样说的:

Note: The Session class does not utilize native PHP sessions. It generates its own session data, offering more flexibility for developers.

( https://www.codeigniter.com/userguide2/libraries/sessions.html )

关于 CI session 是否取代原生 session ,或者仅仅是一种替代方案并且它们实际上同时共存,我找不到明确的直接解释,其中如果在技术上可以同时使用两者。

不是说有人会想要,而是应该避免。

提前致谢。

最佳答案

根据用户指南,

session 是如何工作的?

加载页面时, session 类将检查用户的 session cookie 中是否存在有效的 session 数据。如果 session 数据不存在(或已过期),将创建一个新 session 并将其保存在 cookie 中。如果一个 session 确实存在,它的信息将被更新,cookie 将被更新。每次更新时,都会重新生成 session_id。

因此 CI 使用 cookie,它与 PHP 的本地 session 是分开的。

还有使用数据库的选项,模仿 PHP 的 native session ,但在数据库而不是文件系统上。但它很容易出现已知错误,这是一个示例:codeigniter session expires frequently

简而言之,正如所描述的那样,它们是完全独立的,是的,它们可以同时共存。不过,只有当您通过 PHP 的 native 方法手动创建 session 时才会这样。

关于php - CodeIgniter session 和常规 session 可以共存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19039993/

相关文章:

php - 登录页面传递 $_SESSION

php - 使用 COUNT (PHP MySQL) 添加行号并显示总数

php - ExpressionEngine no_results 不工作

mysql - Codeigniter MySql 数据库连接问题

javascript - 如何在下拉列表中传递所选值并附加到 site_url 中?

java - weblogic session 的问题

parsing - 捕获和分析流量

php - 为什么 mysqli 给出 "Commands out of sync"错误?

php - Laravel - 针对数据库中的日期范围的 PHP/MySQL 日期范围过滤器

php - 如何在 php mysql 中将搜索选项中的数据分配为 json 格式