header('Location:')没有重定向


header('Location:') no redirecting

我的代码在学校服务器上正常工作,但现在我已经更改了主机,页面没有重定向。我试过很多方法,但都不起作用。谢谢你的帮助!

我代码:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<?php require_once('baza.php'); ?>
<?php
session_start();
$user=$_POST['user']; 
$pass=$_POST['pass'];
$encrypted_pass=md5($pass);
$sql="SELECT * FROM uporabniki WHERE uporabnik='$user' and geslo='$encrypted_pass'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);
if($count==1){
$_SESSION['user']=$user;
$_SESSION['pass']=$pass;
session_write_close();
header('Location: dostop.php');
}
else {
echo "Napačno uporabniško ime ali geslo.<br>";
echo "<a href='vpis.php'>Nazaj na vpis</a> ali ";
echo "<a href='index.php'>nazaj na Domačo stran.</a>";
}
?>
</html>

两件事:

  1. 报头只能在发送任何其他输出之前发送。这包括从doctype到header的行。您需要在此之前发送标题-甚至在空白空格之前。

  2. 您确实需要在发送报头后直接添加die();呼叫。否则,即使用户将被重定向,脚本的其余部分将继续在后台执行。这可能是轻微的麻烦,也可能是绝对灾难性的,这取决于应用程序。

header()之后调用die()exit()函数