Erreur incompréhensible
xander18
Messages postés
78
Statut
Membre
-
Pitet Messages postés 2845 Statut Membre -
Pitet Messages postés 2845 Statut Membre -
Bonjour, j'ai créer un formulaire de connexion hors j'obtiens tj la même erreur sur ma requete et je vois pas d'ou cela pourrais venir merci de votre aide.
form connexion :
traitement php :
merci de votre aide
form connexion :
<form action="connexion.php" method="post">
<label for="" style="color: #fff;">Identifiant</label>
<div class="form-group">
<input class="form-control" type="text" name="username" placeholder="Identifiant" required>
</div>
<label for="" style="color: #fff;">Mot de passe</label>
<div class="form-group">
<input class="form-control" type="password" name="pass" placeholder="Mot de passe" required>
</div>
<div class="form-group">
<button class="btn btn-primary" type="submit"><i class="fa fa-power-off"></i> Se connecter</button>
</div>
</form>
traitement php :
<?php
$username = $_POST['username'];
$password = md5($_POST['pass']);
$db = new PDO('mysql:host=localhost;dbname=conferences', 'root', '');
if(!empty($username) && !empty($password) ){
$q = $db->query("SELECT * FROM users WHERE username = $username AND pass = $password");
$data = $q->fetch(PDO::FETCH_ASSOC);
var_dump($data);
exit();
if(!$data){
$_SESSION['notification'] = "Merci de bien vouloir vérifier votre identifiant ou votre mot de passe";
header('Location: auth.php');
}else{
session_start();
$_SESSION['id'] = $data['id'];
$_SESSION['username'] = $data['username'];
header('Location: dashboard.php');
}
}else{
$_SESSION['notification'] = "Merci de bien remplir les champs demandées";
header('Location: auth.php');
}
?>
merci de votre aide
1 réponse
-
Salut,
Tu dois ajouter des quotes autour des valeurs utilisées dans une requête sql.
Dans l'idéal, il faudrait également éviter les injections sql en échappant les caractères sql. Pour cela deux solutions :
- soit utiliser une requête préparée avec des paramètres nommés
- soit utiliser la méthode quote() de PDO
Un exemple en utilisant la méthode quote() :$q = $db->query('SELECT * FROM users WHERE username = ' . $db->quote($username) . ' AND pass = ' . $db->quote($password));
Bonne journée