problème connection

Par Arma_713, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'ai suivi le tuto sur créer son portefolio et je suis tombé sur cette erreur là :
uncaught Error: Cannot access empty property

voici mon code

if(isset($_POST['username']) && isset($_POST['password'])){ $username = $db->quote($_POST['username']); $password = sha1($_POST['password']); $select = ("SELECT * FROM usernames WHERE usernames=$username AND password='$password'"); $db->$query; var_dump($select->rowCount()); var_dump($_POST); if ($select->rowCount()>0) { $_SESSION['Auth'] = $select->fetch(); setFlash('Vous êtes maintenant connnecter'); header('location: index.php'); die(); } }

9 réponses

Arma_713, il y a 9 ans

yep ce sont bien les bonne valeurs qui en ressortent

Lartak, il y a 9 ans

Bonsoir.
Ton problème doit venir de $db->$query;
Je pense que tu veux plutôt faire :

$sql = "SELECT * FROM usernames WHERE usernames=$username AND password='$password'"; $select = $db->query($sql);
Arma_713, il y a 9 ans

yes je te remercie ça marche des keur sur toi ^^
ça ma affiché une nouvelle erreur : Uncaught Error: Call to a member function rowCount() on boolean

cid5420, il y a 9 ans

Bah d'où sort rowCount() ? si c'est pour tester si tu trouve ou pas un user :

if(!empty($select)){ echo 'user connecté'; }
Arma_713, il y a 9 ans

excuse moi de pas avoir répondu depuis 3 mois j'ai eu quelque soucis cid je n'ai pas compris ta question

SLK, il y a 9 ans

Salut,

ça ma affiché une nouvelle erreur : Uncaught Error: Call to a member function rowCount() on boolean

C'est juste la requête qui est mal écrite (par rapport aux quotes / double quotes).
Il faut un fetchAll() aussi.
Et du coup utilise count($truc) plutôt que $truc->rowCount().

$sql = 'SELECT * FROM usernames WHERE usernames = "' . $username . '" AND password = "' . $password . '"'; $select = $db->query($sql); $response = $select->fetchAll(); var_dump($response); var_dump(count($response));

Pas vraiment ultra important mais,
ça me perturbe beaucoup que le champ usernames soit au pluriel plutôt qu'au singulier.
Et que la table s'appelle usernames plutôt que users ou members ou autres...
C'est un peu confus.

Arma_713, il y a 9 ans

voila mon nouveau code mais ca me remarque la même choses "
Fatal error: Uncaught Error: Call to a member function fetchAll() on boolean in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\login.php:36 Stack trace: #0 {main} thrown in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\login.php on line 36"
pourl e champs qui porte quasiment le même nom j'avais fais ca il été tard donc j'été fatigué mais quand je m'en suis rendu compte j'avais de réemmeller les pinceaux si je changeais tout

<?php if(isset($_POST['username']) && isset($_POST['password'])){ $username = $db->quote($_POST['username']); $password = sha1($_POST['password']); $sql = 'SELECT * FROM usernames WHERE usernames = "' . $username . '" AND password = "' . $password . '"'; $select = $db->query($sql); $response = $select->fetchAll(); var_dump($response); var_dump(count($response)); /** $sql = ("SELECT * FROM usernames WHERE usernames=$username AND password='$password'"); $select = $db->query($sql); var_dump($select->rowCount()); if ($select->rowCount()>0) { $_SESSION['Auth'] = $select->fetchAll(); setFlash('Vous êtes maintenant connnecter'); header('location: index.php'); }*/
SLK, il y a 9 ans

il été tard donc j'été fatigué mais quand je m'en suis rendu compte j'avais de réemmeller les pinceaux si je changeais tout

haha,
oui je vois ^^
moi c'est pareil.

mets des var_dump sur $username et $password,
et vérifie que ce sont les bonnes valeurs en BDD.

$username = $db->quote($_POST['username']); $password = sha1($_POST['password']); var_dump($username); var_dump($password);
SLK, il y a 9 ans

ah ben zut, je ne vois pas du tout... :'(