2017-10-04 10 views
-4

Voici mon code:Les détails que je mets dans mon code de formulaire de connexion sont retournés comme étant incorrects même s'ils sont, pourquoi?

<?php 
 

 

 
session_start(); 
 

 
include_once('../includes/connection.php'); 
 

 
if (isset($_SESSION['logged_in'])){ 
 
\t 
 
}else{ 
 
\t 
 
\t if (isset($_POST['username'], $_POST['password'])) { 
 
\t \t $username= $_POST['username']; 
 
\t \t $password= md5($_POST['password']); 
 
\t \t 
 
\t \t 
 
\t \t if(empty($username) or empty($password)) { 
 
\t \t \t 
 
\t \t \t $error = 'All fields are required!'; 
 
\t \t \t 
 
\t \t \t 
 
\t \t }else{ 
 
\t \t \t $query = $pdo->prepare("SELECT * FROM users WHERE user_name = ? user_password = ?"); 
 
\t \t \t 
 
\t \t \t $query->bindValue(1, $username); 
 
\t \t \t $query->bindValue(2, $password); 
 
\t \t \t 
 
\t \t \t $query->execute(); 
 
\t \t \t 
 
\t \t \t 
 
\t \t \t $num = $query->rowCount(); 
 
\t \t \t 
 
\t \t \t if ($num==1){ 
 
\t \t \t \t 
 
\t \t \t \t 
 
\t \t \t \t $_SESSION['logged_in'] = true; 
 
\t \t \t \t header('Location: index.php'); 
 
\t \t \t \t exit(); 
 
\t \t \t \t 
 
\t \t \t \t 
 
\t \t \t \t 
 
\t \t \t }else{ 
 
\t \t \t \t 
 
\t \t \t $error='Incorrect details!'; 
 
\t \t \t 
 
\t \t \t } 
 
\t \t \t 
 
\t \t } 
 
\t \t 
 
\t \t 
 
\t \t 
 
\t } 
 
\t 
 
\t 
 
\t 
 
?> 
 

 
<html> 
 
\t <head> 
 
\t \t <title>CMS Tutorial</title> 
 
\t \t <link rel="stylesheet" href="../assets/style.css" /> 
 
\t </head> 
 
\t <body> 
 
\t \t <div class="container"> 
 
<a href="index.php" id="logo">CMS</a> 
 

 

 
\t \t 
 

 

 

 
<?php if(isset($error)) { ?> 
 

 
<small style="color:#aa0000;"><?php echo $error; ?></small> 
 

 
<?php } ?> \t 
 

 

 
\t \t 
 
\t \t <form action="index.php" method="post" autocomplete="off"> 
 
        <input type="text" name="username" placeholder="Username" /> 
 
        <input type="password" name="password" placeholder="Password" /> 
 
        <input type="submit" value="Login" /> \t \t \t \t 
 
\t \t </form> 
 
\t \t </div> 
 
\t </body> 
 
</html> 
 

 

 
<?php 
 
\t 
 
\t 
 
\t 
 
} 
 

 

 

 
?>

Je n'ai pas la moindre idée où mon erreur est, essayé de trouver une erreur, mais je ne pouvais pas trouver, le code le plus récent que je suis entré dans le code était "} else {$ query = $ pdo-> etc .." mais je ne pense pas qu'il y ait une erreur là-bas ... Si quelqu'un pouvait m'aider je serais vraiment reconnaissant! Aussi vous ne devez pas m'envoyer le code entier répondre à une réponse simple ou un indice serait utile. :RÉ!

+3

Vos besoins de la requête et avant user_password =? . s'il vous plaît ne pas utiliser md5 pour les mots de passe. Utilisez php est construit dans password_hash et password_verify – Akintunde007

+0

Wow c'était rapide merci! Une telle erreur stupide: D –

+3

vous n'allez pas vivre avec ça, n'est-ce pas? –

Répondre

-1

Votre requête a besoin d'un ET:

$query = $pdo->prepare("SELECT * FROM users WHERE user_name = ? AND user_password = ?"); 
+1

Merci fonctionne comme un charme! Ill marque votre commentaire comme une réponse dans dix minutes! Merci encore! –