Php会话变量在没有指令的情况下被破坏

时间:2017-08-03 15:05:36

标签: php session

我只在代码中使用会话变量。我没有开始任何cookie活动。我只是做session_start()并对变量进行操作。 但是在一段时间(大约30分钟)结束时,会议结束了。如果我执行print_r($ _ SESSION)会话无效。

我已经尝试将session.gc_maxlifetime设置为7200(2小时),但会话在不到30分钟内就会被破坏。

我该如何解决这个问题?这很正常吗?如果我关闭浏览器或将语句/指令发送到session_destroy?

,会话是否应该被销毁?

2 个答案:

答案 0 :(得分:0)

会话变量用于保存信息,直到浏览器关闭。我不太确定你想在项目中实现什么,因为你还没有发布任何代码。 一些简单的事情就像没有将session_write_close();放在php脚本的末尾或session_start()一开始,在任何html标签可能弄乱你的代码之前。

答案 1 :(得分:0)

默认超时为24分钟。

除了php.ini,您可以在代码中更改它。你可以试试这个:

array_count_values

来自这个答案:How to change the session timeout in PHP?

关于它的文章:

https://bytes.com/topic/php/insights/889606-setting-timeout-php-sessions

给出了我适应2小时的代码。

[0]

php.net页面:

http://php.net/manual/en/function.session-set-cookie-params.php

其他堆栈答案验证了这一点(一些评价很高):

PHP sessions default timeout
How do I expire a PHP session after 30 minutes?