PHP会话超时htaccess文件

时间:2012-05-22 14:44:03

标签: php session timeout

嗨,我是编程新手,但我目前正在解决会话超时问题。基本上我的会话保持超时,即使我已经改变了session.gc_maxlifetime。 我认为使用相同目录来存储没有设置maxlifetime的会话数据的另一个脚本正在运行,因此它将使用较短的值。为了解决这个问题我已经改变了htaccess文件,但它仍然在1小时30分钟后终止,我需要它持续更长时间。我的htaccess文件如下。我看过并试过了这个板上的许多相关帖子,但到目前为止还没有任何工作。任何想法都将不胜感激。

SetEnv PHPRC /home/rocket/public_html/php.ini

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

<IfModule mod_php5.c>
php_value session.save_path "new/username/php_sessions"
php_value session.gc_maxlifetime "86400"
php_value session.cookie_lifetime "86400"

</IfModule>


# END WordPress

1 个答案:

答案 0 :(得分:3)

PHP不会对会话cookie做什么,你可能认为它...

php_value session.gc_maxlifetime "86400"

这仅仅设置了垃圾收集可能发生的时间 - 因为在此时间之后会话数据 的可能性非常小,这是不可能的成为罪魁祸首。

php_value session.cookie_lifetime "86400"

这会设置会话Cookie到期的时间...... 它不会在session_start()更新,因此,如果您在一个页面上启动会话,则会设置时钟滴答作响。从一个页面移动到另一个页面不会重置“时钟”,因此cookie_lifetime为600的会话将在启动后10分钟到期在10分钟不活动后 - 您可能是看到这种行为。

您最好设置php_value session.cookie_lifetime "0"这意味着当用户关闭浏览器时,会话Cookie将会

如果你想处理在一段时间不活动后触发的任意过期,最好在PHP代码中通过在会话中设置变量来执行此操作,例如$_SESSION['expires']和检查/更新/处理每页的开头。