我需要弄清楚如何取消设置这个cookie,到目前为止我尝试的一切都失败了。
这是我当前取消设置它的方式,但似乎并不起作用。
setcookie("user_id", $user_id, time() - 7200);
这是我设置的方式:
setcookie("user_id", $user_id, time() + 7200);
我有一个名为set_session_from_cookie()
的函数,它会检查 cookie 是否设置,如果设置了,就使用 cookie 开始一个新会话。
问题在于,当我在页面上使用此函数时,我无法注销。我猜测这是因为我无法取消会话。
我使用这个函数的原因是,如果用户希望在结束会话后记住他们的状态,他们可以调用 cookie 重启会话。
function set_session_from_cookie()
{
if (isset($_SESSION['user_id'])) {
echo '';
} else {
$_SESSION['user_id']=$_COOKIE['user_id'];
}
}
注销:
<?php
require'core.php';
session_destroy();
setcookie("user_id", "", time() - 7200);
header('Location:/social_learning/site_pages/starter-template.php');
我使用以下代码设置我的cookie:
if ($rememberme == "on") {
$user_id = mysql_result($query_run, 0, 'id');
setcookie("user_id", $user_id, time() + 7200);
$_SESSION['user_id'] = $user_id;
redirect('home_page.php');
} else {
if ($rememberme == "") {
echo 'ok';
$user_id = mysql_result($query_run, 0, 'id');
echo $user_id;
$_SESSION['user_id'] = $user_id;
redirect('home_page.php');
}
}
如何在不使用我创建的函数的情况下,使用保存的 cookie 重新启动会话?因为似乎使用该函数导致用户无法注销。