Problème de récupération
Résolu
flo39400
Messages postés
659
Statut
Membre
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai voulu améliorer mon code mais j'arrive pas au résultat:
Pouvez vous me dire ce qu'il cloche ?
Avant j'avais ça, qui fonctionne très bien :
Maintenant je remplace avec ceci est, l'id utilisateur n'est pas récupéré donc connexion impossible sans message d'erreur :
Merci pour votre aide.
J'ai voulu améliorer mon code mais j'arrive pas au résultat:
Pouvez vous me dire ce qu'il cloche ?
Avant j'avais ça, qui fonctionne très bien :
$requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ? AND motdepasse = ?");
$requser->execute(array($pseudoconnect, $mdpconnect));
$userexist = $requser->rowCount();
Maintenant je remplace avec ceci est, l'id utilisateur n'est pas récupéré donc connexion impossible sans message d'erreur :
$prep_requser = "SELECT * FROM membres WHERE pseudo = ? AND motdepasse = ?";
try{
$requser = $bdd->prepare($prep_requser);
$requser->execute(array($pseudoconnect, $mdpconnect));
}catch(Exception $e){
echo "Erreur :".$e->getMessage();
}
$req_userexist = $requser->fetchAll();
$userexist = count($req_userexist);
Merci pour votre aide.
A voir également:
- Problème de récupération
- Récupération de déchets - Guide
- Convertisseur récupération de texte - Guide
- Recuperation video youtube - Guide
- Recuperation message whatsapp supprimé - Guide
- Adresse mail de recuperation c'est quoi - Guide
2 réponses
Bonjour,
Comme je te l'avais déjà conseillé .. il est préférable de placer la requête et les données dans des variables à part .... cela permet, par exemple, d'en faire des ECHO pour savoir ce qu'elles contiennent réellement...
Donc ton code devient :
Comme je te l'avais déjà conseillé .. il est préférable de placer la requête et les données dans des variables à part .... cela permet, par exemple, d'en faire des ECHO pour savoir ce qu'elles contiennent réellement...
Donc ton code devient :
$sql = "SELECT * FROM membres WHERE pseudo = :pseudoconnect AND motdepasse = :mdpconnect";
$datas = array(":pseudoconnect"=>$pseudoconnect,":mdpconnect"=> $mdpconnect)
try{
$prepare = $bdd->prepare($prep_requser);
$prepare->execute($datas);
$arr_Resultat = $prepare->fetchAll();
}catch(Exception $e){
echo "Erreur :".$e->getMessage();
}
//si la requete a retourné un résultat et que count retourne 1 ou plus..
$userexist = !empty($arr_Resultat) && count($arr_Resultat)>0 ? true : false;
//----------------------------
//le temps des tests :
//----------------------------
echo "<pre>La requete est : ".$sql."</pre>";
echo "Les datas sont :<br><pre>";
print_r($datas);
echo "</pre>";
//----------------------------
if($userexist){
echo "l'utilisateur existe";
}else{
echo "l'utilisateur n'existe pas";
}
J'avance mais je suis tombé sur une autre erreur, vraiment je comprend pas dès que la solution est trouvé sa marche pas quand même....
Code erreur:
1 Notice: Undefined variable: requser in
2 Fatal error: Call to a member function fetch() on null in
ligne 80 au niveau du fetch (
if(isset($_POST['formconnexion']))
{
$pseudoconnect = htmlspecialchars($_POST['pseudoconnect']);
$mdpconnect = sha1($_POST['mdpconnect']);
if(!empty($pseudoconnect) AND !empty($mdpconnect))
{
$prep_requser = "SELECT * FROM membres WHERE pseudo = :pseudoconnect AND motdepasse = :mdpconnect";
$datas = array(":pseudoconnect"=>$pseudoconnect,":mdpconnect"=> $mdpconnect);
try{
$prepare = $bdd->prepare($prep_requser);
$prepare->execute($datas);
$arr_Resultat = $prepare->fetchAll();
}catch(Exception $e){
echo "Erreur :".$e->getMessage();
}
//si la requete a retourné un résultat et que count retourne 1 ou plus..
$userexist = !empty($arr_Resultat) && count($arr_Resultat)>0 ? true : false;
if($userexist)
{
$prep_insertip = "UPDATE membres SET adresse_ip = ? WHERE id = ?";
try{
$insertip = $bdd->prepare($prep_insertip);
$insertip->execute(array($_SERVER['REMOTE_ADDR'], $_SESSION['id']));
}catch(Exception $e){
echo "Erreur :".$e->getMessage();
}
$insertip = $bdd->prepare("UPDATE membres SET adresse_ip = ? WHERE id = ?");
$insertip->execute(array($_SERVER['REMOTE_ADDR'], $_SESSION['id']));
if(isset($_POST['rememberme']))
{
setcookie('pseudo',$pseudoconnect,time()+5*60,null,null,false,true);
setcookie('password',$mdpconnect,time()+5*60,null,null,false,true);
}
$userinfo = $requser->fetch();
$_SESSION['id'] = $userinfo['id'];
$_SESSION['pseudo'] = $userinfo['pseudo'];
$_SESSION['mail'] = $userinfo['mail'];
$_SESSION['rang'] = $userinfo['rang'];
$_SESSION['avatar'] = $userinfo['avatar'];
header("Location: index.php?id=".$_SESSION['id']);
}
else
{
$erreur = "Mauvais pseudo ou mot de passe !";
}
}
else
{
$erreur = "Tous les champs doivent être complétés !";
}
}
Code erreur:
1 Notice: Undefined variable: requser in
2 Fatal error: Call to a member function fetch() on null in
ligne 80 au niveau du fetch (
$userinfo = $requser->fetch();)
code erreur: Parse error: syntax error, unexpected 'try' (T_TRY)
Donc le code erreur: Notice: Undefined variable: prep_requser
Puis le reste:
Erreur :SQLSTATE[42000]: Syntax error or access violation: 1065 Query est vide
La requete est : SELECT * FROM membres WHERE pseudo = :pseudoconnect AND motdepasse = :mdpconnect
Les datas sont :
Array
(
[:pseudoconnect] => DieuTopGun
[:mdpconnect] => 10eec3f9771022d3aacc8bbda28be42548a6a022
)
l'utilisateur n'existe pas
Pourtant sais l’utilisateur excite vraiment donc voila....
$prep_requser = "SELECT * FROM membres WHERE pseudo = :pseudoconnect AND motdepasse = :mdpconnect"; $datas = array(":pseudoconnect"=>$pseudoconnect,":mdpconnect"=> $mdpconnect); try{ $prepare = $bdd->prepare($prep_requser); $prepare->execute($datas); $arr_Resultat = $prepare->fetchAll(); }catch(Exception $e){ echo "Erreur :".$e->getMessage(); } //si la requete a retourné un résultat et que count retourne 1 ou plus.. $userexist = !empty($arr_Resultat) && count($arr_Resultat)>0 ? true : false; //---------------------------- //le temps des tests : //---------------------------- echo "<pre>La requete est : ".$sql."</pre>"; echo "Les datas sont :<br><pre>"; print_r($datas); echo "</pre>"; //---------------------------- if($userexist){ echo "l'utilisateur existe"; }else{ echo "l'utilisateur n'existe pas"; }Adresse de destination http://localhost/2017/profil.php?id=
Normalement l'id utilisateur est récupérer, la non... pourtant pas de message d'erreur...