似乎没有设置PHP cookie超全局

Boa*_*rdy 2 php cookies

我目前正在开发一个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页面上使用它没有显示任何内容.

Wh1*_*Ck5 5

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.