php设置session有效期(php中如何设置session时长,使得用户登录一次之后保证3天内不用重复**)
本文目录
- php中如何设置session时长,使得用户登录一次之后保证3天内不用重复**
- php session 不会过期 怎么设置过期
- Thinkphp 对session有效期的设置为什么总不起作用
- 怎么设置session永不过期
- php 怎么设置session 的值永不过期
- session怎么设置过期时间
php中如何设置session时长,使得用户登录一次之后保证3天内不用重复**
你好,首先你得搞清楚session的机制,
你的session 时间哪怕你设置10年,只要用户一关浏览器那你的session就失效了.
session 是运行在服务器端的.
你的这个需求3天内不用再登录只能用cookie来做了,
cookie运行在客户端,但是用户清理了cookie的话此功能就会失效
php session 不会过期 怎么设置过期
php session本来就会过期啊(本来是会话的cookie,也就是说关闭浏览器,则session过期),如果要强制过期的话可以:
setcookie(session_name(),’’, time() - 3600);
session_destroy();
两者同时使用即可。
希望能够帮助到你,如果还有什么疑问,请留言。
Thinkphp 对session有效期的设置为什么总不起作用
thinkphp的session设置周期是无效的;
直接的影响就是无法保留用户的**状态;
用thinkphp开发的项目;
关闭浏览器后用户就退出了;
即便设置了session周期也没作用;
这个bug存在很久了;
但是thinkphp官网一直没处理更新;
吐槽完毕;下面来解决这个bug;
首先需要在 /Thinkphp/Common/funtion.php 公告函数的第1213行添加如下内容;
如果不是在1213行;就搜索gc_maxlifetime
// 1213行原代码if(isset($name);PHP
原代码:
更改后的代码:
然后在配置项/Application/Common/conf/config.php中添加如下代码
//***********************************SESSION设置**********************************
’SESSION_OPTIONS’ =》 array(
’name’ =》 ’BJYSESSION’, //设置session名
’expire’ =》 24*3600*15, //SESSION保存15天
’use_trans_sid’ =》 1, //跨页传递
’use_only_cookies’ =》 0, //是否只开启基于cookies的session的会话方式
),PHP
ok;大功告成;
怎么设置session永不过期
打开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; // 注册Session变量Count
isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id();
// 如果设置了$PHPSESSID,就将SessionID赋值为$PHPSESSID,否则生成SessionID
$_SESSION++; // 变量count加1
setcookie(’PHPSESSID’, $PHPSESSID, time()+3156000); // 储存SessionID到Cookie中
echo $count; // 显示Session变量count的值
?》
如果很久以后(多久?你自己看吧)你回来刷新这个页面,输出的数字比你走的时候大了1那就对了!如果大了很多,估计是谁动你电脑了,这次测试就不准确了,呵呵……重新出去一会儿吧!
注意:在setcookie一行中的’PHPSESSID’并不是一定的,如果你遇到有个患有修改狂疾病的网管员,他可能对其做了修改,最好的方法是用phpinfo()这个函数看看,确认一下session.name一项的值,比较科学。
php 怎么设置session 的值永不过期
把sessionID存到客户端cookie里试试呢
《?php
session_start(); // 启动Session
$_SESSION; // 注册Session变量Count
isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id();
// 如果设置了$PHPSESSID,就将SessionID赋值为$PHPSESSID,否则生成SessionID
$_SESSION++; // 变量count加1
setcookie(’PHPSESSID’, $PHPSESSID, time()+3156000); // 储存SessionID到Cookie中
//echo $count; // 显示Session变量count的值
?》
session怎么设置过期时间
大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间。
对此,可以在PHP中,设置php.ini,找到session.gc_maxlifetime = 1440 #(PHP5默认24分钟)
这里你可以随便设置一下过期时间.但是有人说设置以后,好象不起作用!
其实不是不起作用,而是因为系统默认:
session.gc_probability = 1
session.gc_divisor = 1000
garbage collection 有个概率的,1/1000就是session 1000次才有一次被回收。
只要你的访问量大了,那就能达到回收的效果.
或者你也可以设置一下session.gc_divisor 的值,
比如:session.gc_divisor = 1,这样就能明显的看到SESSION过期的效果了.
我们最常用的是在php程序中设置,如下例程序所示:
《?php
if(!isset($_SESSION)》60)
$_SESSION = time();
?》
这样就搞定了,如果要设置已过期的话也可以在程序中实现:
《?php
unset($_SESSION=’’;
?》
更多文章:
c***ole口怎么连电脑(win10连接c***ole口的步骤)
2026年4月10日 00:40
java转apk工具下载(求APK改之理java SDK (JDK)网址下载)
2026年4月10日 00:20
matlab中count的用法(用matlab 统计连续数值的个数)
2026年4月10日 00:00
telnet ip 端口号(Telnet的默认端口号是多少)
2026年4月9日 23:20
shellcode在线解码(请教如何在Shell中实现base64解码)
2026年4月9日 23:00
php设置session有效期(php中如何设置session时长,使得用户登录一次之后保证3天内不用重复**)
2026年4月9日 22:40





