我创建了一个登录脚本,当用户登录时,应该将它们重定向到名为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页面上。
有什么想法吗?
答案 0 :(得分:1)
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。见http://php.net/manual/en/function.header.php