Php 会话/cookie问题codeigniter 1.7.2

Php 会话/cookie问题codeigniter 1.7.2,php,mysql,session,codeigniter,cookies,Php,Mysql,Session,Codeigniter,Cookies,您好,我正在完成一个项目,我突然遇到了有关CI的问题。我正在运行版本1.7.2,并使用CI会话类设置和获取会话数据 这发生在Firefox和IE中。更奇怪的是,该应用程序只在Chrome中正常运行。我已经证实,这种情况也发生在以前没有任何问题的较旧版本的应用程序中 这是我的配置: 会话 $config['sess_cookie_name'] = 'ciprojectname'; $config['sess_expiration'] = 7200; $config['s

您好,我正在完成一个项目,我突然遇到了有关CI的问题。我正在运行版本1.7.2,并使用CI会话类设置和获取会话数据

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

这是我的配置:

会话

$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会在加载之间重置会话数据。在大多数情况下,这是由服务器设置引起的。我的猜测是,它在本地主机上运行得很好,而且现在在移动到远程服务器时出现了问题

首先,找出问题所在。你必须准确地指出问题发生的地方。一些建议:

  • 检查服务器日志以查看日期的设置方式。是万年。如果所有服务器都有相同版本的PHP,那么这可能是您的问题。这是一些PHP版本的已知错误

  • 如果否,数据库是否正在获取会话数据?如果是,则可以在从一页移动到另一页时查看数据,以查看会话是否正在重置。如果是这样,很可能是服务器设置问题

  • 如果没有,请检查浏览器安全设置。一旦从本地主机移动,可能会出现安全问题

  • 如果没有,请尝试从默认值更改为
    $config['sess\u expiration']=43200有些人建议在删除会话出现问题时使用此方法

  • 如果否,将sess\u match\u ip更改为False,并在Firefox和IE中尝试。这与浏览器设置问题有关

  • 如果问题仍然不清楚,请进行简化测试-重新创建问题所需的最低代码。创建一个具有“设置会话”和“读取会话”功能的控制器。尝试在每个浏览器中重新加载页面,以查看会话是否续订。查看服务器日志和数据库。如果这样做有效,那么罪魁祸首似乎是会话中发送的一些问题浏览器不喜欢的数据

  • 潜在问题很可能是以下一个或多个问题:

    A.会话数据中的无效字符

    B.服务器时间设置

    C.IE和Firefox中的安全设置(如果服务器从本地主机更改)

    D.PHP中的日期错误问题

    如果您仍有问题,则可能是考虑使用本机会话库:

    的时候了。 似乎这个问题非常普遍,以至于有人为CI会话创建了一个自定义类:这可能值得一试


    希望这有帮助。

    您仍然没有描述问题?您只是尝试设置cookie域?尝试将值为
    TRUE
    的所有已发布配置项设置为
    FALSE
    。顺便问一下,问题是什么?对不起,我没有描述问题。我尝试将所有内容设置为false,但如果我将$config['sess\u use\u database']=TRUE,应用程序就会崩溃;这是错误的。引用未加载的模型属性时出错。解决此问题的方法是设置$config['cookie\u path']=$config['base\u url'];而不仅仅是一个正斜杠。谢谢你的反馈。我会仔细研究你的建议,看看是否有什么办法可以解决这个问题。因此,我用这个方法结束了会话类的切换,并设置了我的cookie域,这个问题似乎得到了解决。不过,你关于切换会话库的建议让我走上了正确的道路。谢谢