这是一个登录验证页面,一旦它验证了用户详细信息,我希望它将用户指向" account.php"页面,所有验证工作正常,但用户只是没有被重定向到帐户页面。
<?php
$username = $_POST['username'];
$password = $_POST['password'];
if($_SESSION['loggedin'] = true) {
session_destroy();
}
if(empty($username) || empty($password)) {
echo("ERROR|Please fill out all of the fields.");
} else {
$file = fopen("Users.csv","r");
while(! feof($file)) {
$rows = fgetcsv($file);
if (($rows[1] == $username) && ($rows[4] == $password)) {
session_start();
$_SESSION['loggedin'] = true;
$_SESSION["username"] = $rows[1];
$_SESSION["email"] = $rows[2];
$_SESSION["dateOfBirth"] = $rows[3];
$_SESSION["password"] = $rows[4];
$_SESSION["userScore"] = $rows[5];
echo("SUCCESS|Logging In as " . $username);
header('Location: ../account.php');
exit();
}
}
echo("ERROR|Incorrect Username or Password.");
fclose($file);
}
?>
答案 0 :(得分:1)
您正在向浏览器打印一些HTML,因此,它不会重定向。
删除
echo("SUCCESS|Logging In as " . $username);
或者,添加
ob_start()
在您的文件中。
这会将所有输出值存储在缓冲区中,并导致重定向。
答案 1 :(得分:0)
一旦您在页面上回显了一些HTML,就无法使用标题重定向。在删除回显的HTML之前,您应该会收到如下所示的错误。
Warning: Cannot modify header information - headers already sent
答案 2 :(得分:0)
您可以使用javascript警告框,而不是在屏幕上显示消息,然后可以将用户重定向到其他页面。我希望如果您希望该用户查看该消息,则可以达到此目的。
echo "<script type='text/javascript'>";
echo "alert('Successful login');";
echo "</script>";