Php Cookie问题/会话过期
我有写文章的用户,当他们离开电脑一段时间后回来提交文章时,作者/用户的id被记录为空值。我假设会话即将到期。我有:Php Cookie问题/会话过期,php,session,cookies,Php,Session,Cookies,我有写文章的用户,当他们离开电脑一段时间后回来提交文章时,作者/用户的id被记录为空值。我假设会话即将到期。我有: ob_start(); session_start(); if(isset($_SESSION['user_id'])) { $ext = time() + 31560000; setcookie('name', $_SESSION['user_id'], $ext); } 在索引页面的顶部,用户登录时将被重定向。 此外,他们实际登录时会发生以下情况: $use
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();
$user\u id=get\u user\u id($some\u变量);//获取用户的\u id
$username=get_username($some_变量);//获取用户的用户名
$\u会话['user\u id']=$user\u id;
?>
window.location=http://site.com/';
我不知道你想用什么来达到目的
if(isset($_SESSION['user_id'])) {
$ext = time() + 31560000;
setcookie('name', $_SESSION['user_id'], $ext);
}
但这不会增加php会话的生存期,只会创建一个名为name的cookie,该cookie的值为$\u session['user\u id'],并在创建后31560000秒过期
如果要更改会话生存期,请参见检查php.ini
设置的设置。默认值为1440秒或24分钟。在这段时间之后,旧的会话数据可能会被清除。session.gc_maxlife=1000000(随机数)是将其写入php.ini的正确方法吗?是的,这将在全局范围内完成。也可以从脚本中使用,但如果使用,则必须确保与会话交互的所有脚本都使用相同的值。确保其足够大以满足您的需要,但不要太大,否则服务器上会有大量的旧会话数据。因此,在24分钟不活动后,它是否仍会过期,但最大值为86400(如果我提供该值)?或者,即使没有活动,86400也不会过期?不活动显然是这里的问题。只要他们不关闭浏览器,它就会有效地将可能的清理之前的最长不活动时间设置为86400。根据session.gc\u概率
和session.gc\u除数
,清理可以在之后的一段时间内进行。您还可以在关闭浏览器后将会话cookie修改为live。我正在查看它。我想使用什么特定的函数以及如何编写它?我想把它设为86400秒。您可以使用ini_set函数或直接修改php.ini。exinit_set('session.gc_maxlifest',86400)代码>