登录脚本正在重定向

时间:2014-12-04 12:10:57

标签: php redirect login mysqli

我创建了一个登录脚本,当用户登录时,应该将它们重定向到名为users的目录中的不同页面,但它似乎不起作用。下面是我创建的脚本 -

<?php

session_start();

$errors = []; 

$username = isset($_POST['username']) ? $_POST['username'] : null;
$password = isset($_POST['password']) ? $_POST['password'] : null;

if(!empty($_POST)) {
if(empty($username)) {
    $errors[] = "Please enter a username"; 
    echo "<style type=\"text/css\"> #username { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
}
if(empty($password)) {
    $errors[] = "Please enter a password"; 
    echo "<style type=\"text/css\"> #password { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
} else {

if(empty($errors)) {
    $dir = dirname("link/tooutside/wroot");
    include($dir . '/directory/myconnect.php');

    $salt = "thisismyhash";
    $hashedpass = hash('sha512', $password . $salt);

    $result = mysqli_query($conusers, "SELECT * FROM users WHERE username = '$username' AND password = '$hashedpass'"); 
        if(mysqli_num_rows($result) == 1) {
                $_SESSION['loggedin'] = 'true';
                $_SESSION['username'] = $username;
                header('Location: users/index.php');
            } else {
                $errors[] = "Your username or password is incorrect"; 
            }
        }
    }
}
?>

现在,如果我用echo语句替换重定向代码,则echo语句可以正常工作,但是当使用重定向链接时,它不会重定向我,它只会保留在index.php页面上。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。见http://php.net/manual/en/function.header.php