开发者社区> 问答> 正文

如何让PHP中的session永不过期

如何让PHP中的session永不过期?

展开
收起
吴孟桥 2016-06-06 16:35:21 2398 0
1 条回答
写回答
取消 提交回答
  • 打开php.ini设置文件,修改三行如下:

    1、session.use_cookies
    把这个的值设置为1,利用cookie来传递sessionid

    2、session.cookie_lifetime
    这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是因为这个所以PHP的 session不能永久使用! 那么我们把它设置为一个我们认为很大的数字吧,999999999怎么样,可以的!就这样。

    3、session.gc_maxlifetime
    这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除! 那么我们也把它设置为99999999。

    当然也可能你没有控制服务器的权限并不能像我一样幸运的可以修改php.ini设置,一切依靠我们自己也是有办法的,当然就必须利用到客户端存储 cookie了,吧得到的sessionID存储到客户端的cookie里面,设置这个cookie的值,然后把这个值传递给session_id()这 个函数,具体做法如下:

    <?php
    session_start(); // 启动Session 
    $_SESSION['count']; // 注册Session变量Count 
    isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id(); 
    // 如果设置了$PHPSESSID,就将SessionID赋值为$PHPSESSID,否则生成SessionID 
     
    $_SESSION['count']++; // 变量count加1 
    setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // 储存SessionID到Cookie中 
    echo $count; // 显示Session变量count的值 
    ?>
    2019-07-17 19:28:57
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载