php passwort überpüfung?
Guten Abend, ich habe eine Html Datei erstellt die eine Loginseite darstellt. Dazu habe ich eine PHP Datei erstellt die das Passwort abfragen soll. Aber wenn ich auf einloggen klicke wird mir nur der Code der PHP angezeigt. Also ich kann mich weder einlogen noch sagt mir die PHP ob das Passwort falsch ist. Was kann ich tun.
Der Html code:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="shortcut icon" type="image/x-icon" href="https://www.flaticon.com/premium-icon/icons/svg/2395/2395608.svg" />
<link rel="stylesheet" type="text/css" href="../CSS/global.css">
</head>
<style type="text/css"></style>
<body>
<div class="form-container">
<div id="benutzer-bild"></div>
<center><h2><b>Login</b></h2></center>
<form method="POST" action="loign.php">
Benutzername: <input type="text" name="user"/><br>
Passwort: <input type="password" name="password"/><br>
<input type="submit" value="Einloggen"/>
</form>
</div>
</body>
</html>
der PHP code:
<?php
$user = $_POST['user'];
$password = $_POST['password'];
if ($user=="Admin" && $password==Admin)
{
header('location:startseite.html');
}
else
{
echo "dfgdfgfdgdfgdfg";
}
?>
Nutzt du denn einen Webserver der den PHP code auch ausführt?
ne ich benutze keinen server. Ich wollte dieses eigentlich ohne server. Also nur local.
2 Antworten
Du musst die Datei mit der Endung .php auf einem Webserver ablegen der PHP unterstützt und anschließend per http aufrufen. Einfach im Browser von deiner lokalen Festplatte aufrufen führt keinen PHP-Code aus.
Ich empfehle dir dringend, den PHP-Code oberhalb deines HTML-Markups zu platzieren. Und die redirect-Methode würde ich in eine eigene Funktion packen.
Bei der zweiten if-Abfrage hast du die Anführungszeichen vergessen. Nutze statt zwei Vergleichsoperaten, drei Vergleichsoperaten, dann wird der String-Inhalt und zusätzlich der Datentyp überprüft.
<?php
$user = htmlspecialchars($_POST['user']);
$password = htmlspecialchars($_POST['password']);
function redirect($page) {
if(strlen($page) > 0)
{
header('location:' + $page);
}
else
{
header('location:home.html');
}
exit();
}
if ($user === "Admin" && $password === "Admin")
{
redirect("startseite.html");
}
else
{
echo "Passwort/Benutzername falsch!";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="shortcut icon" type="image/x-icon" href="https://www.flaticon.com/premium-icon/icons/svg/2395/2395608.svg" />
<link rel="stylesheet" type="text/css" href="../CSS/global.css">
</head>
<style type="text/css"></style>
<body>
<div class="form-container">
<div id="benutzer-bild"></div>
<center><h2><b>Login</b></h2></center>
<form method="POST" action="loign.php">
Benutzername: <input type="text" name="user"/><br>
Passwort: <input type="password" name="password"/><br>
<input type="submit" value="Einloggen"/>
</form>
</div>
</body>
</html>
Und ich habe mal gelesen, dass Location immer vor einer Ausgabe liegen muss, was ja bei HTML Code davor nicht der Fall ist, oder? Wenn ich da gerade nicht falsch liege, wäre es eine gute Ergänzung