【问题标题】:Change the expiry time of PHPSESSID Cookie更改 PHPSESSID Cookie 的过期时间
【发布时间】:2011-01-01 14:24:13
【问题描述】:

我已经在这里工作了一天,但似乎没有任何效果。 我想做什么:改变会话cookie phpsessid的到期时间,当检查一个特定的复选框时,我该怎么做? 我试过了:

ini_set()

session_set_cookie_params()

setcookie()

但没有任何效果。有人可以请在这里帮助我吗?

谢谢

【问题讨论】:

    标签: php cookies


    【解决方案1】:

    要指定会话生存期,服务器端,请应用以下命令

      ini_set('session.gc_maxlifetime', 30*60); // expires in 30 minutes
    

    或将其设置在您的 php.ini 文件中。

    要设置会话cookie的生存期,客户端,要么让它保持原样(0,关闭浏览器时会死),要么

      ini_set('session.cookie_lifetime', 30*60); // 30 minutes
    

    或在php.ini

    如果您选择使用ini_set(),请确保在调用session_start() 之前放置命令

    注意ini_set 函数设置配置选项during the script execution time only

    关于复选框和会话生命周期的动态设置,您可以

    • 使用APC 存储所有PHP 进程共享的设置,该设置将持续到PHP 服务器关闭
    • 在脚本开始时加载的文件中写入值(昂贵)并设置值

    (每个脚本必须在session_start()之前ini_set()一次)

    【讨论】:

    • 谢谢,我现在明白问题是 ini_set 需要在 session_start() 之前。但我不知道如何更改现有 phpsessid cookie 的值..
    • 是的,这对我有用。对于我的 ajax 调用,我需要一种方法来检测会话是否已过期。请注意,您需要在测试前删除过期日期错误的cookie。
    猜你喜欢
    • 2015-02-09
    • 2016-08-15
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2011-03-01
    • 2019-07-31
    • 2012-02-26
    相关资源
    最近更新 更多