繁体   English   中英

session / cookie 问题 codeigniter 1.7.2

[英]session / cookie issues codeigniter 1.7.2

嗨,我正在完成一个项目,但我突然遇到了CI问题。 我正在运行版本 1.7.2 ,并且我正在使用 CI session class 来设置和获取 session 数据。

这发生在Firefox 和 IE中。 更奇怪的是该应用程序只能在 Chrome 中正常运行 我已经证实这也发生在以前没有任何问题的旧版本的应用程序中。

这是我的配置:

Session

$config['sess_cookie_name']        = 'ciprojectname';
$config['sess_expiration']        = 7200;
$config['sess_encrypt_cookie']    = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']        = 'sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent']    = TRUE;
$config['sess_time_to_update']     = 900; 

Cookies

$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']        = "/"; 

我尝试添加 cookie 域,但问题仍然存在。 我还读到这可能是与服务器时间同步的问题,但我已经在多台服务器上尝试过。 我想首先要看的是为什么 CI 会在一个浏览器而不是其他浏览器中工作。

任何帮助将不胜感激。

更新

我从来没有详细描述过这个问题:

当我尝试访问 /controller/method 时,它会重新加载当前页面并且什么都不做。 有时如果我添加 /controller/method/ <-- 正斜杠,它将呈现下一页。

我的猜测是 Firefox 和 IE 在加载之间重置 session 数据。 在大多数情况下,这是由服务器设置引起的。 我的猜测是它在本地主机上运行良好,现在一旦移动到远程服务器就会出现问题。

首先,找出问题所在。 您必须准确指出问题发生的位置。 一些建议:

  1. 检查服务器日志以查看日期是如何设置的。 是 0000 年。如果所有服务器的 PHP 版本相同,那么这可能是您的问题。 这是某些 PHP 版本的已知错误。 https://bugs.php.net/bug.php?id=48276

  2. 如果没有,数据库是否获取 session 数据? 如果是,那么您可以在逐页移动时观察数据,以查看 session 是否正在重置。 如果是这样,很可能是服务器设置问题。

  3. 如果不是,请检查您的浏览器安全设置。 从 localhost 移动后,可能会出现安全问题。

  4. 如果不是,请尝试从默认更改为$config['sess_expiration'] = 43200; 有些人建议在出现会话丢失问题时使用此方法。

  5. 如果否,将sess_match_ip更改为 False 并在 Firefox 和 IE 中尝试。 它伴随着浏览器设置问题。

  6. 如果问题仍然不清楚,请进行简化测试 - 重新创建问题所需的最少代码。 创建具有“setsession”和“readsession”function 的单个 controller。 尝试在每个浏览器中重新加载页面以查看 session 是否更新。 查看服务器日志和您的数据库。 如果这可行,那么罪魁祸首似乎是在问题浏览器不喜欢的 session 中发送的一些数据。

根本问题很可能是以下一项或多项:

A. session 数据中的无效字符

B. 服务器时间设置

C。 IE 和 Firefox 中的安全设置(如果服务器从 localhost 更改)

D. PHP 中的日期错误问题

如果您仍然遇到问题,可能是时候考虑使用 Native Session 库: http://codeigniter.com/wiki/Native_session/

似乎这个问题非常普遍,以至于有人为 CI 会话定制了 class: http://www.philsbury.co.uk/blog/code-igniter-sessions它可能值得一试。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM