怎么设置session永不过期

怎么设置session永不过期,第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。

就这样一切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的值

?>

如果很久以后(多久?你自己看吧)你回来刷新这个页面,输出的数字比你走的时候大了1那就对了!如果大了很多,估计是谁动你电脑了,这次测试就不准确了,呵呵……重新出去一会儿吧!

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

常用的有两种方法:

1. 在主页面中写入下面两句:

HttpSession session=request.getSession(true)

session.setMaxInactiveInterval(3600)//3600秒,注意服务器端的3600秒,而不是客户端的

2. 在项目的web.xml中设置:

<session-config>

<session-timeout>60</session-timeout>

</session-config>

这里的60就是60分钟。

还有一种在服务器端设置的方法,因为不同的服务器配置不同,在这就不说了,以上两个就足够用了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11268817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存