Menu

Notice: Trying to get property of non-object in C: [Résolu]

franckyvescharlesponcy 31 Messages postés mercredi 28 mars 2018Date d'inscription 14 août 2018 Dernière intervention - 6 août 2018 à 16:11 - Dernière réponse : franckyvescharlesponcy 31 Messages postés mercredi 28 mars 2018Date d'inscription 14 août 2018 Dernière intervention
- 10 août 2018 à 15:13
Bonjour,

voila, j'ai un problème avec ma page de connexion (index.php) a mon espace membre.

problème que je rencontre : dés que je rentre le BON login et mot de passe j'ai un message d'erreur : Notice: Trying to get property of non-object in C:\wamp\www\login.php on line 24

et voici ma page index
.php
Afficher la suite 

Votre réponse

8 réponses

jordane45 22132 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 août 2018 Dernière intervention - 6 août 2018 à 16:31
0
Merci
Bonjour,

Pense également à nous préciser si tu es en PDO ou mysqli.

Si PDO, je t'invite à appliquer ceci :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Si Mysqli, pense à afficher les éventuelles erreurs via mysqli error
http://php.net/manual/fr/mysqli.error.php

franckyvescharlesponcy 31 Messages postés mercredi 28 mars 2018Date d'inscription 14 août 2018 Dernière intervention - 6 août 2018 à 17:04
je travaille en PDO
jordane45 22132 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 août 2018 Dernière intervention - 6 août 2018 à 17:37
Donc.. si PDO....
1 - Activer la gestion des erreurs PDO dans la connexion ET placer chaque requête dans un bloc TRY/CATCH (comme expliqué dans ce lien : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs )

2 - Ne pas utiliser num_rows sur des requêtes SELECT (comme expliqué dans la doc officielle de PHP....) . A la place tu peux faire un COUNT sur ta requête

Par exemple :
$sql = " SELECT * From utilisateur WHERE nomuti = '$username'";
  $result = $connect->query($sql);
  

  if ($result->num_rows == 1) {

Devient :
$sql = " SELECT * From utilisateur WHERE nomuti = :nomuti";
$datas = array(':nomuti'=>$username);
try{
  $prep = $connect->prepare($sql);
 $prep->execute($datas);
  //on stocke le résultat de la requete dans un array
  $result = $prep->fetchAll();
}catch(Exception $e){
  // si la requête retourne une erreur
  echo "Erreur : ".$e->getMessage();
  exit();
} 

if (count($result) == 1) {
franckyvescharlesponcy 31 Messages postés mercredi 28 mars 2018Date d'inscription 14 août 2018 Dernière intervention - 6 août 2018 à 18:41
ça me genere une autre erreur"Fatal error: Call to a member function execute() on a non-object in C" . Apparement le $datas n'est pas reconnu comme un objet
try{
  $prep = $connect->prepare($sql);
 $prep->execute($datas);
  //on stocke le résultat de la requete dans un array
  $result = $prep->fetchAll();
}catch(Exception $e){
  // si la requête retourne une erreur
  echo "Erreur : ".$e->getMessage();
  exit();
} 
jordane45 22132 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 août 2018 Dernière intervention - 6 août 2018 à 19:25
Tu peux nous faire voire ta connexion ?
As tu appliqué ce qui est marqué (TOUT ce qui est marqué ) dans les liens que je t'ai donné ???
Montre nous ton code complet....
franckyvescharlesponcy 31 Messages postés mercredi 28 mars 2018Date d'inscription 14 août 2018 Dernière intervention - 10 août 2018 à 15:13
merci apres quelques jours de recherhes et de lecture j'ai appliqué tout ce qui etait dit dans les liens et j'ai pu voir à quel niveau se situait le probleme . je vous montrerai dans les jours à venir le code complet et les modifications apportées
Commenter la réponse de jordane45