首页 > 解决方案 > 当我尝试登录我的网站时显示 HTTP 错误 500

问题描述

我正在为我正在尝试制作的测试站点制作一个简单的登录页面。每次我尝试使用硬编码密码登录时,它都会给我一个 HTTP 500 错误,这意味着我拼错了一些东西,但我似乎可以找到问题所在,因为一切似乎都很好。

这是log-in.php 代码:

<!DOCTYPE HTML>

<?php
    session_start();

    $username = "user";
    $password = "pass";

    if (isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == true){
        header("Location: success.php");       
    }

    if (isset($_POST['username']) && isset($_POST['password'])){
        if($_POST['username'] == $username && $_POST['password'] == $password){

            $_SESSION['loggedIn'] = true;
            header("Location: success.php");
        }

    }
?>

<html>
        <body>
            <form method="post" action="log-in.php">
                Username:<br/>
                <input type="text" name="username"><br/>
                Password<br/>
        <input type="password" name="password"><br/>
                <input type="submit" value="Login!">
            </form>
        </body>
</html>

这就是我输入正确密码时想要显示的内容。这是success.php代码:

<!DOCTYPE HTML>

<?php
    session_start();
    if(!isset($_SESSION['loggedIn']) || $_SESSION['loggedIn'] == false){
        header("Location: index.html")
    }
?>

<html>
<h>You have logged in!</h>

</html>

如果您能帮助我解决这个问题,我将不胜感激。谢谢

标签: phphtmlhttpwebwebpage

解决方案


分号留在success.php 中的第6 行。

分号在 php 中是必须的,否则会导致错误 500。

 <!DOCTYPE HTML>

<?php
    session_start();
    if(!isset($_SESSION['loggedIn']) || $_SESSION['loggedIn'] == false){
        header("Location: index.html")
    }
?>

<html>
<h>You have logged in!</h>

</html>

应该改为

<!DOCTYPE HTML>

<?php
    session_start();
    if(!isset($_SESSION['loggedIn']) || $_SESSION['loggedIn'] == false){
        header("Location: index.html");//semicolon added
    }
?>

<html>
<h>You have logged in!</h>

</html>

推荐阅读