登录系统不起作用

时间:2015-10-26 14:17:17

标签: php

我的登录脚本有问题。问题是,登录scipt应该检查密码和名称是否正确。如果是,则应打开包含信息的站点。

网站确实打开了,但问题是,无论输入什么密码或名称,我都会输入需要正确密码的页面,并打开正确的名称。

我在脚本中找不到任何错误。也许你可以帮忙吗?以下是脚本:

<!DOCTYPE html>
<html>
<head>
    <title>Login</title> 
    <meta charset="UTF-8" /> 
    <style type="text/css"> 
    .fehler { color: red; }
    </style>
</head>
<body>
    <?php

    if (isset($_GET["f"]) && $_GET["f"] == 1) {
        echo "<p class='fehler'>Login-Daten nicht korrekt</p>";
    }

    ?>
    <form method="post" action="new 2.php">
        Your name, m'lady: <br />
        <input type="text" name="name" size="20" />
        <br />
        Your password, m'lady: <br />
        <input type="password" name="passwort" size="20" /><br />
        <input type="submit" value="Login" />
    </form>
</body>
</html>

new 2.php脚本:

<?php

session_start();
$host  = htmlspecialchars($_SERVER["HTTP_HOST"]);
$uri   = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])), "/\\");    

if (isset($_POST["name"]) && $_POST["name"] == "M'lady" &&  $_POST["passwort"] == "lol") {
    $_SESSION["name"]  = "M'lady";
    $_SESSION["login"] = "ok";
    $extra = "website.php";
} 
else {
    $extra = "lol23.php?f-1";   
}
header("Location: http://localhost/canttellyouthat/website.php");

?>

网站脚本:

<?php

    session_start(); 
    if (isset($_SESSION["login"]) && $_SESSION["login"] == "ok") {

?>
<!DOCTYPE html>
<html> 
<head>
    <title>Geschützter Bereich</title>
    <meta charset="UTF-8" /> 
</head>
<body>
<?php
    echo "<h1>Hi {$_SESSION['name']}</h1>"; 
?>
    <p><font color="FF0000"><font size="7">Wichtige Informationen</font></p>
    <p><a href="http://localhost/canttellyouthat/sorrydudes">Datenbank</p> 
    <p><a href="lol23.php"><font size="7">Ausloggen</font></p>
</body>
</html>

<?php

} else { 
    $host = htmlspecialchars($_SERVER["HTTP_POST"]); 
    $uri  = rtrim(dirname(htmlspecialchars(["PHP_SELF"])), "/\\");
    $extra = "lol23.php"; 
    header("Location: http://localhost/lol23.php"); 
}

?>

1 个答案:

答案 0 :(得分:0)

正如评论中所指出的,您使用location而没有任何if条件。请尝试将代码new2.php更改为:

<?php

session_start();
$host  = htmlspecialchars($_SERVER["HTTP_HOST"]);
$uri   = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])), "/\\");    

if (isset($_POST["name"]) && $_POST["name"] == "M'lady" &&  $_POST["passwort"] == "lol") {
    $_SESSION["name"]  = "M'lady";
    $_SESSION["login"] = "ok";
    header("Location: http://localhost/canttellyouthat/website.php"); 
} 
else {
    header("Location: http://localhost/canttellyouthat/lol23.php?f-1");   
}

?>