这是正确的,当他们尝试使用登录页面而不进入登录页面时,代码会将人重定向到登录页面
<?php
$pass = 'password';
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
if ( $_POST["pass"] == $pass){
?>
Congrats you have log in!
<?php
}else{
header("Location: http://signin.com/");
}
?>
</body>
</html>
我最终遇到了“服务器错误 该网站在检索http://www.test.com时遇到错误。它可能已关闭以进行维护或配置不正确。“
答案 0 :(得分:2)
在您输出一些HTML后,您无法调用header
。你的密码检查&amp;重定向。在HTML之上
例如:
<?php
$pass = 'password';
if ( $_POST["pass"] != $pass){
header("Location: http://signin.com/");
exit;
}
?>
<html>
<head>
<title></title>
</head>
....
因此HTML只会显示它们是否成功。
答案 1 :(得分:2)
您无法在输出后向用户发送header()
:
<?php
$pass = 'password';
if ( $_POST["pass"] == $pass)
{
?>
<html>
<head>
<title></title>
</head>
<body>
Congrats you have log in!
</body>
</html>
<?php
}
else
{
header("Location: http://signin.com/");
}
?>
答案 2 :(得分:1)
把ob_start();在顶部和ob_end_flush();这可能会解决它。
答案 3 :(得分:1)
在使用header
进行重定向之前,您无法输出html。在编写所有逻辑之前:
<?php
$pass = 'password';
if ($_POST["pass"] == $pass)
{
$message = "Congrats you have log in!";
}
else
{
header("Location: http://signin.com/");
}
?>
<html>
<head>
<title></title>
</head>
<body>
<?php echo $message; ?>
</body>
答案 4 :(得分:1)
这样的事情会更好:
<?php
$pass = 'password';
if ($_POST["pass"] != $pass){
header("Location: http://signin.com/");
exit;
}
?>
<html>
<head>
<title></title>
</head>
<body>
Congrats you have log in!
</body>
</html>
您需要检查用户是否已登录。如果没有,请重定向并退出。如果是,请显示消息。