PHP Login Script

Jule_Fisi

Grünschnabel
Hallo ihr Lieben, ich bin momentan dabei eine Login Seite zu schreiben mit Zugriff auf meine MySQL Datenbank. Leider habe ich jetzt das Problem dass das Script super funktioniert, nur beim Einloggen immer die Fehlermeldung bringt das Email oder Passwort ungültig ist, wobei das aufkeinenfall sein kann. Vielleicht kann mir ja jemand von euch meinen Fehler verraten.
PHP:
<?php
session_start();
$pdo = new PDO('mysql:host=localhost;dbname=**', '**', '**');

if(isset($_GET['login'])) {
    $email = $_POST['email'];
    $pw = $_POST['pw'];

   $statement = $pdo->prepare("SELECT * FROM user WHERE email = :email");
   $result = $statement->execute(array('email' => $email));
   $user = $statement->fetch();


 // Prüfen, ob Benutzername und Passwort zusammenpassen
    if ($user !== false && password_verify($pw, $user['pw'])) {
                $_SESSION['userid'] = $user['id'];
        die('Login erfolgreich. Weiter zu <a href="index.php">internen Bereich</a>');
} else {
        $errorMessage = "E-Mail oder Passwort war ungültig<br>";
    }

}
?>

<!DOCTYPE html>
<html>
<head>
  <title>Login</title>
</head>
<body>
<?php
if(isset($errorMessage)) {
    echo $errorMessage;
}
?>

<form action="?login=1" method="post">
E-Mail:<br>
<input type="email" size="40" maxlength="250" name="email"><br><br>

Dein Passwort:<br>
<input type="password" size="40"  maxlength="250" name="pw"><br>

<input type="submit" value="Abschicken">
</form>
</body>
</html>
 
was wird ausgegeben, wenn du folgendes vor dem IF-Statement angibst:
PHP:
echo "User-Variable";
echo "<br/>";
var_dump($user);
echo "<br/>";
echo "Passwort"
echo "<br/>";
var_dump($pw);
echo "<br/>";
var_dump($user['pw']);
echo "<br/>";
var_dump(password_verify($pw, $user['pw']));
echo "<br/>";

Nur so eine Frage am Rand. Du speicherst hoffentlich nicht die Passwörter in Klartext in die Datenbank?
 
Ich habe bis auf meinen Testacc keine Klartext Passwörter in meiner Datenbank, bei Test hab es aus bequemlichkeit :D Ausgabe ist das hier :
Code:
User-Variable
array(8) { ["name"]=> string(4) "test" [0]=> string(4) "test" ["vorname"]=> string(0) "" [1]=> string(0) "" ["email"]=> string(11) "test@web.de" [2]=> string(11) "test@web.de" ["pw"]=> string(4) "test" [3]=> string(4) "test" }
Passwort
string(4) "test"
string(4) "test"
bool(false)
 
Zurück