怎么让php中的session永不过期?

  • 来源:网络
  • 更新日期:2020-07-21

摘要:打开php.ini文件,分别将“session.use_cookies”值设置为1,“session.cookie_lifetime”值设置为999999999,“session.gc_maxlifetime”值设置为99999999,即可。php中session永

打开php.ini文件,分别将“session.use_cookies”值设置为1,“session.cookie_lifetime”值设置为999999999,“session.gc_maxlifetime”值设置为99999999,即可。

php中session永不过期的方法

第一种方法:

打开php.ini设置文件,修改三行如下:【相关教程推荐:《PHP教程》】

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。

就这样一切ok了,当然你不相信的话就测试一下看看——设置一个session值过个10天半个月的回来看看,如果你的电脑没有断电或者宕机,你仍然可以看见这个sessionid。

第二种方法:

当然也可能你没有控制服务器的权限不可以修改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的值 
?>

注意:在setcookie一行中的’PHPSESSID’并不是一定的,如果你遇到有个患有修改狂疾病的网管员,他可能对其做了修改,最好的方法是用phpinfo()这个函数看看,确认一下session.name一项的值,比较科学。