我目前正在开发一个PHP网站.我正在尝试设置一个存储用户ID的cookie.这是一个登录系统,我需要用户ID才能将它添加到MySQL数据库的不同表中.
当用户成功登录时,会创建一个PHP会话和一个cookie,然后使用元标记刷新来指向索引页面.
if ($row = mysql_fetch_array($result))
{
setcookie('id', $row['use_id']);
$_SESSION['user'] = $username;
setcookie('userID', $row['use_id']);
echo '<meta http-equiv="refresh" content="0;url=../index.php">';
}
Run Code Online (Sandbox Code Playgroud)
如果我删除元刷新并使用$_COOKIE['userID']
它回显cookie 它工作正常但是当我尝试$_COOKIE['userID']
在完成元刷新后在index.php页面上使用它没有显示任何内容.
setcookie('userID', $row['use_id'], 0, "/");
Run Code Online (Sandbox Code Playgroud)
编辑:过期时间为零.
您的cookie对于index.php是不可见的,因为它是从子目录中的脚本设置的.因此,对于较高级别的页面,它是不可见的.您应该将cookie路径(第4个参数)设置为"/",并且cookie将在整个域中可用.
这就是为什么你的cookie对index.php不可见的原因.
header('Location: ../index.php');
^^^
Run Code Online (Sandbox Code Playgroud)
您已将页面重定向到较高目录级别,但未为整个域设置cookie.