Ich denke, ich vermisse ein kleines Detail, aber ich kann nicht ganz herausfinden, was. Meine Datenbank ist zu 100% sicher davon. Meine register.php Seite lädt Daten perfekt. Wenn ich versuche, das Login-System zu setzen, bekomme ich das gleiche Echo "ungültige E-Mail oder Passwort", ob ich gute Informationen eintippe oder schlecht (nur um zu überprüfen). An einen bestimmten Punkt.PHP mysql Login-System Probleme
Ich änderte den Code, um zu sehen, ob ich Daten von meiner Datenbank auf meine Seite posten konnte und es funktionierte perfekt, also denke ich, dass meine PDO-Verbindung zur db gut ist. Warum habe ich für beide Situationen immer das gleiche Echo?
<?php
if (isset($_POST['submit'])){
$db_server = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "newsite";
try{
$conn = new PDO("mysql:host=$db_server;dbname=$db_name", $db_user, $db_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
if (!empty($_POST['email']) && !empty($_POST['password'])){
$req = $conn->prepare('SELECT id,email, password FROM users_tb WHERE email= :email');
$req->bindParam(':email',$_POST['email']);
$req->execute();
$result= $req->fetch(PDO::FETCH_ASSOC);
if (count($result)>0 && password_verify($_POST['password'], $result['password'])){
echo "Alleluia!";
}else{
echo "invalid email or password";
}
}
}
?>
die für
<body>
<form method="POST" action="login.php">
<table width="400" border="5" align="center">
<tr>
<td colspan="5">Login</td>
</tr>
<tr>
<td align="center">Email</td>
<td><input type="text" name="email"></input></td>
</tr>
</tr>
<tr>
<td align="center">Password</td>
<td><input type="password" name="password"></input></td>
</tr>
</tr>
<tr>
<td><input type="submit" name="submit" value="sign up"></input></td>
</tr>
</table>
</form>
</body>
sie bitte Ihre Form zur Verfügung stellen. –
http://php.net/manual/en/function.error-reporting.php und stellen Sie sicher, dass die Länge der Passwort-Spalte 60+ ist, sonst wird es auf Sie stumm scheitern. –
Überprüfen Sie den angegebenen Tabellennamen und überprüfen Sie den angegebenen Tastennamen – user3386779