【问题标题】:PHP Sessions with cookies (lifetime and files)带有 cookie 的 PHP 会话(生命周期和文件)
【发布时间】:2015-02-09 15:50:23
【问题描述】:

我已按照教程使用 cookie 处理会话。我现在有两个问题:

  1. 我的生命周期太短(一两个小时),尽管我已将 session.cookie_lifetimesession.gc_maxlifetime 的值设置为“1209600”
  2. 我尝试使用以下方法将会话保存到文件中:

    ini_set("session.save_handler", "files");
    session_set_save_handler($session, true);
    session_save_path($rel_path . "/sessions");
    

    $session 是我已创建但尚未开始的会话的实例。

现在,当我通过 XAMPP 在本地使用它时,它可以正常工作,但当我在线上传网站时就不行了。我猜这个问题来自我的网络主机 www.ovh.com,但我不知道如何解决这个问题。有什么想法或建议吗?

【问题讨论】:

  • 检查 phpinfo()。它将显示主(硬编码 .ini/php_value 设置)和当前“本地”设置,这是所有 .ini/php_value + ini_set() 覆盖的最终结果。您可能将值设置在一个地方,但这并不意味着它不能在其他地方被覆盖。
  • 如果它在本地系统上工作,那么在实时系统上修改配置可能会有所帮助?
  • @MarcB 当我检查phpinfo() 时,“本地值”已正确“更新”,而“主值”显示为默认值。
  • @bub 你会建议什么样的修改?
  • 我不确定具体的修改,但事实是您的代码在本地系统上工作,并且在“在线”时不起作用。因此,系统的配置之间肯定存在差异。也许您可以联系您的托管服务提供商。

标签: php session cookies web-hosting


【解决方案1】:

我通过添加这行代码解决了这个问题:

ini_set('session.force_path', 0);

与其他 ini_setsession 参数一起使用。当我在本地打印 phpinfo()(使用 XAMPP)时,session.force_path 参数在 session 部分中不可见,而它位于我的网络托管服务上。这也解决了我的会话生命周期问题,因为它取决于会话文件的存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    相关资源
    最近更新 更多