我有用户写文章,当他们离开电脑一段时间后回来然后提交帖子,作者/ user_id被记录为NULL值。我假设会话即将到期。我有:
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();
这是否配置正确,为什么用户的会话即将到期?他们没有退出浏览器,只是不活动。会导致这种情况的原因是什么?
答案 0 :(得分:1)
我不知道你试图用
实现什么if(isset($_SESSION['user_id'])) {
$ext = time() + 31560000;
setcookie('name', $_SESSION['user_id'], $ext);
}
但是这不会增加php会话生命周期,而只会创建一个名为name的cookie,其值为$ _SESSIOn ['user_id']并在创建后到期31560000秒。
如果您想更改会话有效期,请参阅session.configuration