使用cookie和头文件的PHP重定向

使用cookie和头文件的PHP重定向,php,cookies,redirect,header,Php,Cookies,Redirect,Header,我正在学习PHP,并试图根据cookie是否设置来重定向页面。下面是我用来在第一页设置cookie的代码 <?php setcookie("test","logged in",time()+60,'/'); ?> 现在在测试页面上我删除了cookie,但没有删除,下面是代码 <?php setcookie("test", 0, time()-(60*60*24*7)); if(isset($_COOKIE['test'])) { echo "u had logg

我正在学习PHP,并试图根据cookie是否设置来重定向页面。下面是我用来在第一页设置cookie的代码

<?php
setcookie("test","logged in",time()+60,'/');
?>

现在在测试页面上我删除了cookie,但没有删除,下面是代码

<?php
setcookie("test", 0, time()-(60*60*24*7));

if(isset($_COOKIE['test']))
{
    echo "u had logged in";
}
else
header("Location: index.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

</body>
</html>

无标题文件

到底是什么问题?

对Cookie所做的更改只有在刷新时才对服务器可见。如果重新加载测试页面,则不应看到“登录”文本。

Cookies仅在页面传输到浏览器时设置,并且仅在作为HTTP请求的一部分发送到服务器时读取

因此:

  • 如果删除cookie,它在下一页加载之前不会消失

  • 如果设置cookie,则在下一页加载之前无法读取该值


  • 处理此问题的一种常见方法是设置/删除cookie,然后执行重新定向。

    警告:不要简单地重新加载同一页面,因为如果有人禁用了cookie,这将导致循环重定向。我的建议是将用户发送到空页面,在该页面中设置cookie,但不会产生输出,并且开销最小,然后使用标题将位置更改为包含需要设置cookie的内容的页面。重新加载后,我发现问题仍然存在。因此,在设置cookie时,我在设置了过期时间之后删除了正斜杠“/”(用于设置路径),它起到了作用。我不太明白斜杠有什么问题?重新加载后,我发现问题仍然存在。因此,在设置cookie时,我在设置了过期时间之后删除了正斜杠“/”(用于设置路径),它起到了作用。我不太明白那个斜杠有什么问题?