我有写文章的用户,当他们离开那里的计算机一段时间后回来然后提交一篇文章作者/ user_id被记录为NULL值。我假设会议即将到期。我有:发布cookies /到期会话
ob_start();
session_start();
if(isset($_SESSION['user_id'])) {
$ext = time() + 31560000;
setcookie('name', $_SESSION['user_id'], $ext);
}
在登录时用户重定向的索引页的顶部。
此外,这是当他们实际登录会发生什么:
$user_id = get_user_id($some_variable); // get's the user_id
$username = get_username($some_variable); // get's username
$_SESSION['user_id'] = $user_id;
?>
<script type="text/javascript">
window.location = 'http://site.com/<?php echo $username; ?>';
</script>
<?php
exit();
这是正确配置,以及为什么会在用户的会话中到期?他们不退出浏览器,它只是无所事事。这会导致什么?
检查你的'php.ini'设置什么[的session.gc_maxlifetime(http://www.php.net/manual/en/session.configuration。 php#ini.session.gc-maxlifetime)设置为。默认值是1440秒或24分钟。在这段时间之后,会有旧会话数据被清理的可能性。 – drew010 2012-03-27 03:42:15
会议session.gc_maxlifetime = 1000000(随机数)是正确的方式写在php.ini? – Graham 2012-03-27 03:44:41
是的,它会在全球范围内做到这一点。您也可以使用脚本中的[ini_set](http://php.net/ini_set),但如果这样做,则必须确保所有与会话交互的脚本使用相同的值。确保它的大小足够满足你的需求,但不是那么大,最终会在服务器上产生大量的旧会话数据。 – drew010 2012-03-27 03:46:54