精华内容
下载资源
问答
  • 修改session生存时间

    2020-08-03 14:21:07
    方法1:修改配置文件php.ini,默认1440,24分钟,可以进行修改 php.ini关于Session的相关设置(打开php.ini文件,在“[Session]”部分): 1、session.use_cookies:默认的值是“1”,代表SessionID使用Cookie来...

    方法1:修改配置文件php.ini,默认1440,24分钟,可以进行修改

        php.ini关于Session的相关设置(打开php.ini文件,在“[Session]”部分):
        1、session.use_cookies:默认的值是“1”,代表SessionID使用Cookie来传递,反之就是使用Query_String来传递;
        2、session.name:这个就是SessionID储存的变量名称,可能是Cookie,也可能是Query_String来传递,默认值是“PHPSESSID”;
        3、session.cookie_lifetime:这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是因为这个所以Session不能永久使用!
        4、session.gc_maxlifetime:这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除!
    

    方法2,在程序中设置,使用ini_set()函数,设置session过期时间,但是当脚本执行结束该设置被清除,不会真正意义上修改php.ini文件

    session_start(); 
    ini_set('session.gc_maxlifetime',21600); 
    

    转载:原文链接:https://blog.csdn.net/benben0729/article/details/81351268

    展开全文
  • php修改session生存时间

    千次阅读 2018-08-02 08:01:10
    方法1:修改配置文件php.ini,默认1440,24分钟,可以进行修改 php.ini关于Session的相关设置(打开php.ini文件,在“[Session]”部分): 1、session.use_cookies:默认的值是“1”,代表SessionID使用Cookie来...

    方法1:修改配置文件php.ini,默认1440,24分钟,可以进行修改

    php.ini关于Session的相关设置(打开php.ini文件,在“[Session]”部分):
    1、session.use_cookies:默认的值是“1”,代表SessionID使用Cookie来传递,反之就是使用Query_String来传递;
    2、session.name:这个就是SessionID储存的变量名称,可能是Cookie,也可能是Query_String来传递,默认值是“PHPSESSID”;
    3、session.cookie_lifetime:这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是因为这个所以Session不能永久使用!
    4、session.gc_maxlifetime:这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除!
    

    方法2,在程序中设置,使用ini_set()函数,设置session过期时间,但是当脚本执行结束该设置被清除,不会真正意义上修改php.ini文件

    session_start(); 
    
    ini_set('session.gc_maxlifetime',21600); 

     

    展开全文
  • 一、修改session生存时间 1)通过php.ini修改 //这里代表我们修改了session存在的最大时间 session.gc_maxlifetime = 86400 2)通过代码实现 $lifeTime = 24 * 3600; // 保存一天 session_set_cookie_...

    一、修改session的生存时间

    1)通过php.ini修改

    //这里代表我们修改了session存在的最大时间
    session.gc_maxlifetime = 86400 

    2)通过代码实现

    $lifeTime = 24 * 3600; // 保存一天
    session_set_cookie_params($lifeTime);
    session_start();

    二、关于session存在的解释

    1)session机制

          当我们执行session_start()之后,就会生成一个sessionID,保存在$_COOKIE变量中(此时,该sessionID并没有保存到客户端,他仅仅存在于会话之中)。同时服务器端默认会在/tmp目录下建立一个session文件,文件名是用前缀“sess_”再加上当前的sessionID组合而成的,我暂且把他叫做sess文件吧。

    2)cookie机制

          当使用cookie机制的时候,在sess文件中没有保存任何数据。而cookie中的数据,实际上是通过setcookie()的方法保存在客户端的。
    并且,该方法只将指定的数据保存到了客户端,而sessionID并没有被保存到客户端。这个时候sessionID依然存在于会话之中。
    当重新打开浏览器之后,我们发现当前的sessionID实际上已经不是之前的sessionID了,
    但是cookie中的数据并不受影响,我们仍然可以通过$_COOKIE变量来获取cookie的值。

    3)session文件的存储位置

    在Linux下,这一路径通常为\tmp,在Windows下通常为C:\Windows\Temp。当服务器上有多个PHP应用时,它们会把自己的session文件都保存在同一个目录中。

    三、session的回收机制GC(Garbage Collector)

    1)GC的工作原理

          当一个有效请求发生时,PHP会根据全局变量session.gc_probability/session.gc_divisor(同样可以通过php.ini或者ini_set()函数来修改)的值,来决定是否启动一个GC(Garbage Collector)。

          GC的工作,就是扫描所有的session信息,用当前时间减去session的最后修改时间(modified date),同session.gc_maxlifetime参数进行比较,如果生存时间已经超过gc_maxlifetime,就把该session删除。

    2)控制GC的参数

    session.gc_maxlifetime  //代表session的最大存活时间
    
    session.gc_probability    
    session.gc_divisor 

          session.gc_divisor 与 session.gc_probability 合起来定义了在每个会话初始化时启动 gc(garbage collection 垃圾回收)进程的概率。此概率用 gc_probability/gc_divisor 计算得来。
    就比如我本地的php.ini中,

    //此处代表每发生1000次php请求,就有可能执行一次GC回收
    session.gc_probability  = 1;  
    session.gc_divisor  = 1000

    这里建议大型的门户网站,可以通过减小GC回收发生的概率来提升网站的性能。

    四、可能遇到的问题

    1)gc_maxlifetime无效的情况

    答:GC在工作时,并不会区分不同站点的session。

    具体参考链接:为什么gc_maxlifetime会失效

    2)如何保证用过的session立刻删除

    答:提升出发GC回收的几率。比如

    session.gc_probability  = 1000;  
    session.gc_divisor  = 1000;
    //这样触发的几率就是100%,缺陷就是很影响性能。

    3)改变session文件的存储位置

    <?php
       session_save_path("D:/www/session/rrr");
       session_start();
    
     //echo"sssss1";
     $_SESSION[ "temp"]   =   "tpp "; 
    
    ?>

    这里需要注意的是需要在启动session之前就改变其存储位置。不然会失效。

    4)如果有一些session不想删除怎么办

    <?php
    if(!isset($_SESSION['last_access'])||(time()-$_SESSION['last_access'])>60)
     $_SESSION['last_access'] = time();
     ?> 

    解释:代码会每隔60秒,尝试修改一次session。这样该session文件的活跃时间就会一直在最大存活时间的范围内。从而达到一致存在的目的。

    end

    参考链接:
    https://blog.csdn.net/gxrj11/article/details/51262848
    https://www.cnblogs.com/hongfei/archive/2012/06/17/2552434.html
    https://blog.csdn.net/xiaoniu__/article/details/72650311
    http://www.jb51.net/article/49757.htm

    展开全文
  • 如何修改SESSION生存时间 我们来手动设置 Session 的生存期: session_start(); // 保存一天 $lifeTime = 24 * 3600; setcookie(session_name(), session_id(), tim...

    如何修改SESSION的生存时间

    我们来手动设置 Session 的生存期:


    <?php

    session_start(); 

    // 保存一天 

    $lifeTime = 24 * 3600; 

    setcookie(session_name(), session_id(), time() + $lifeTime, "/"); 

    ?>

      其实 Session 还提供了一个函数 session_set_cookie_params(); 来设置 Session 的生存期的,该函数必须在 session_start() 函数调用之前调用:

    <?php 

    // 保存一天 

    $lifeTime = 24 * 3600; 

    session_set_cookie_params($lifeTime); 

    session_start();

    $_SESSION["admin"] = true; 

    ?>

      如果客户端使用 IE 6.0 , session_set_cookie_params(); 函数设置 Cookie 会有些问题,所以我们还是手动调用 setcookie 函数来创建 cookie。


    转载于:https://my.oschina.net/jyb2014/blog/360057

    展开全文
  • PHP如何修改SESSION生存时间

    万次阅读 2018-08-27 17:40:22
    如果我们没有设置session的生成时间,在配置文件中默认的生存时间是1440秒 也就是说session生存时间是24分钟,这里可能有些人会有这样的疑问: 为什么我登录之后,24分钟之后,并没有退出呀? 其实在24分钟之后...
  • 首先我们先来手动设置session生存期,如下:<?phpsession_start();// 保存一天$lifeTime = 24 * 3600;setcookie(session_name(), session_id(), time() + $lifeTime, "/");?>其实 Session 还提供了一个函数 ...
  • 本篇文章主要介绍了php如何修改SESSION生存时间的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 如何修改SESSION生存时间我们来手动设置 Session 的生存期:<?phpsession_start();// 保存一天$lifeTime = 24 * 3600;setcookie(session_name(), session_id(), time() + $lifeTime, "/");?> 其实 Session 还...
  • 第一种:在php.ini中设置session.gc_maxlifetime=1440 //默认时间 ... 来设置 Session生存期的,该函数必须在 session_start() 函数调用之前调用: 1 //先设置再开启session 2 $lifeTime = 24...
  • PHP如何修改session生存时间

    千次阅读 2016-07-31 19:47:40
    如何修改session生存时间: 方法一:在php.ini里,修改session.gc_maxlifetime=1440 //默认时间 方法二:(代码实现): $lifeTime=24*3600; //保存一天 session_set_cookie_params($lifeTime); ...
  • 如何修改SESSION生存时间 我们来手动设置 Session 的生存期: session_start(); // 保存一天 $lifeTime = 24 * 3600; setcookie(session_name(), session_id(), time() + $lifeTime, "/"); ?>...
  • 方法1: 将php.ini中的session.gc_maxlifetime设置为9999重启apache...$savePath = "./session_save_dir/"; $lifeTime = 小时 * 秒; session_save_path($savePath); session_set_cookie_params($lifeTime); session_star
  • PHP如何修改session生存时间

    千次阅读 2016-07-31 19:46:00
    如何修改session生存时间: 方法一:在php.ini里,修改session.gc_maxlifetime=1440 //默认时间 方法二:(代码实现): $lifeTime=24*3600; //保存一天 session_set_cookie_params($lifeTime); ...
  • 修改session生存时间

    2012-09-04 16:23:00
    1.session回收//session的实效时间 session.gc_maxlifetime = 86400//垃圾回收的概率#概率是gc_probability/gc_divisorsession.gc_probability = 1session.gc_divisor = 100<?phpif(!isset($_SESSION['last_...
  • $lifeTime = 24 * 3600;...session_set_cookie_params($lifeTime); session_start(); $name=$_SESSION['yuser']; ?> session_start(); $lifeTime = 24 * 3600; setcookie(session_nam...
  • 修改session有效时间

    2017-02-28 11:53:59
    因为系统是根据session读取用户权限动态生成的导航栏,所以这里需要延长session生效时间修改php.ini 的相关参数 1.session_use_cookies这个值为1,利用cookie来传递SessionId 2.session.cookie_lifetime这个代表....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,080
精华内容 13,232
关键字:

修改session的生存时间