所以我在网站上做了一个简单的用户登录,我想设置一个cookie,这样当他们回到网站时,它会把它们带到成员区而不是主页面,有点像“记住” “如果设置了cookie,则将用户重定向到成员区域的功能。
我面临的问题:即使设置了cookie,html代码之前的php代码也没有重定向到member.php页面!
注意:我只是使用部分代码,而不是整个代码/其他文件来简化问题。
这是我的代码:
main.php(这是主页面,也是登录表单的位置,但未显示登录表单)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?php
//Checks if there is a login cookie
if(isset($_COOKIE["blablabla"])) //if cookie is set
{
header("Location: www.website.com/member.php"); //redirect to member.php
}
else
{
//otherwise, redirect to nocookiefound.php
header("Location: www.website.com/nocookiefound.php");
}
?>
<html>
<body>
<?php
echo "Welcome " . $_COOKIE["blablabla"] . "!<br />";
//I ran a echo test to see if cookie is still there, and it is.
?>
</body>
</html>
所以我的问题是,我的重定向可以按照它的方式工作吗?
我必须做错事,因为它没有重定向到member.php,即使cookie回显了正确的值。
所以,如果我在登录后最初是在members.php页面中,那么回到main.php,它应该将我重定向到members.php,但它没有,它只停留在main.php 。有谁知道发生了什么?我很感激能得到的所有帮助。感谢
答案 0 :(得分:1)
PHP代码应该是页面上的第一件事,因为您正在发送重定向“Header”。将其移至Doctype声明之前。
答案 1 :(得分:0)
除了@Dogbert所说的,你的重定向也是无效的。尝试:
header("Location: http://www.website.com/member.php");
答案 2 :(得分:0)
除了其他答案,请输入exit();标题行之后。可以编写一个忽略标题的脚本,从而无意中运行其他代码。
人们经常使用标题来保护管理区域而不会意识到这一点。