【问题标题】:Why This session Variable setting blank after random amount of time为什么此会话变量在随机时间后设置为空白
【发布时间】:2018-05-28 06:35:59
【问题描述】:

我的 php 会话变量在随机时间后自动设置空白值。 例如;如果我登录到我的网站,那么 $_SESSION["uid"] 将在我的 PHP 会话中进行设置。它重定向到仪表板。在我的仪表板页面中,根据此会话变量获取用户信息。之后我只是最小化了这个浏览器窗口(谷歌浏览器),我只是打开了另一个浏览器(Mozilla Firefox)并浏览了一些其他网站 20 或超过 20 分钟,然后我回到我最小化的仪表板页面(谷歌浏览器),如果我刷新页面,然后 $_SESSION["uid"] 将设置为空白。

我的代码是这样的

设置会话变量时

  <?php
   session_start();

   function to_set_session_variable(){
   $_SESSION["uid"]=10;
   session_write_close();
   }

   ?>

仪表板页面内的代码

   <?php
    session_start();
    $uid=$_SESSION["uid"];
    get_user_data($uid);

     -----------------------------------
     -----------------------------------
     -----------------------------------
    ?> 

【问题讨论】:

  • 那是因为 PHP 需要清除不再使用的会话。它会定期执行此操作。如果要设置自定义超时而不是通过 php 将默认存储在文件中,则可以将会话值保存在 redis 等数据库中。

标签: php session


【解决方案1】:

PHP 中的会话有一个默认的超时时间,即 1440 秒(24 分钟)。这可以通过编辑session.gc_maxlifetimephp.ini 中进行更改。

http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多