繁体   English   中英

登录系统 - header(Location:) 不会重定向到受限页面

[英]Login system - header(Location:) won't redirect to restricted page

所以我正在尝试构建一个登录和注册系统,但是当提交登录表单时,除了“header(Location:restricted.php)”之外,所有 PHP 似乎都运行良好。 什么都没有发生,也没有出现错误,当我点击提交时,页面就会刷新。

这是登录页面的代码:

<?php 
        include("connection.php");

        if (isset ($_POST["submit"]) ) {

            $email = $_POST["email"];
            $password = $_POST["password"];

            $result = mysqli_query($conn, "
                SELECT * FROM users WHERE email = '$email' AND password = '$password'
            ");

            $row = $result->fetch_array(MYSQLI_BOTH);

            session_start();
            $_SESSION["UserID"] = $row["UserID"];
            $_SESSION["first_name"] = $row["first_name"];
            $_SESSION["last_name"] = $row["last_name"];
            $_SESSION["email"] = $row["email"];
            $_SESSION["username"] = $row["username"];
            $_SESSION["password"] = $row["password"];

            header('Location: restricted.php');

        }

    ?>

<!DOCTYPE html>
<html>

<?php 

$title = "Sign In";
$css = "";

include('../include/head.php');
?>


<body>

<h2>Log In</h2>

<!--LOGIN FORM-->   
<form action="signin.php" method="POST">
    Email <input type="text" name="email" /> <br />
    Password <input type="password" name="password" />
    <br /> <br />

    <input type="submit" name="submit">
</form>

<a href="signup.php">Sign Up</a>

</body>
</html>

这是受限页面的代码:

<?php 
    session_start();
    if ( isset($_SESSION["UserID"] ) ) {

    } else {
        header('Location: signin.php')
    } 
?><!DOCTYPE html>

<html>    
<head>
    <title>Restricted Page</title>
</head>

<body>
    <p><?php echo 'Welcome ' . $_SESSION["first_name"]; ?></p>
</body>
</html>

任何帮助将不胜感激。

错误:

您在发送标头后忘记终止脚本,您还应该在标头中使用绝对路径,如 HTTP/1.1 所述

header("Location: http://example.com/restricted.php");
exit();

或者

exit(header("Location: http://example.com/restricted.php"));

Restricted.php 在第 6 行也需要同样的东西。

笔记:

如前所述,使用 php 函数进行散列。

这是非常不安全的,您需要在将密码存储在数据库中之前对其进行哈希处理,这可以防止访问您的数据库的黑客看到它们,访问纯文本密码的管理员也很糟糕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM