Problème de code

Résolu
Kotestg Messages postés 16 Statut Membre -  
Kotestg Messages postés 16 Statut Membre -
Aidez-moi s'il vous je suis coincé sur la construction de ma page membre

Voici le code de mon fichier (membre.func.php)
<?php
//la function qui va recuperer les infos de l'utilisateur connecté
function infos_membre_connecte(){
 $infos=array();
 $pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
if($pseudo){
 $req = $bdd->query("SELECT * FROM utilisateurs WHERE pseudo = '$pseudo'");

 while ($data = $req->rowCount()){
  $infos [] = $data;
 }
}else{
 $infos[] = "Erreur : Variable de Session Utilisateur introuvable";
}
return $infos;
}

?>


Voici le code de mon fichier (membre.php)
<div class='header'>
     <?php
  $infos = infos_membre_connecte();

    foreach($infos as $info)

  {
     echo "Bienvenue".$info['pseudo'];
     }
  
 ?>
</div>


EDIT : Ajout des balises de code

Et voici l'erreur que cela m'affiche:

Remarque: Variable indéfinie: bdd dans C: \ wamp64 \ www \ rs \ functions \ membre.func.php à la ligne 7

et

Erreur fatale: Appel à une fonction membre query () sur null dans C: \ wamp64 \ www \ rs \ functions \ membre.func.php à la ligne 7

Alors que faire svp

3 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    function infos_membre_connecte(){ 
      global $bdd; // ajout  ici
      $infos=array(); 
      $pseudo = isset($_SESSION
    
    
    

    1
    1. Kotestg Messages postés 16 Statut Membre
       
      Après avoir inséré global $bdd; voici la nouvelle erreur affichée:

      Remarque: La conversion de tableau en chaîne dans C: \ wamp64 \ www \ rs \ functions \ membre.func.php à la ligne 9
      0
    2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      $req = $bdd->query("SELECT * FROM utilisateurs WHERE pseudo = '$pseudo'");
      
       while ($data = $req->rowCount()){
        $infos [] = $data;
       }
      

      Est à remplacer par

      $sql = "SELECT * FROM utilisateurs WHERE pseudo = :pseudo";
      $datas = array(":pseudo"=>$pseudo);
      //exécution de la requête
      try{
        $prep = $bdd->prepare($sql);
        $prep->execute($datas);
      }catch(Exception $e){
        echo "Erreur " . $e->getMessage();
      }
      
      //on stocke le resultat dans un array:
      $infos = $prep->fetchAll();
      
      



      Pour l'écriture de ton code Je t'invite fortement à lire et à appliquer ceci :
      https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
      et ça
      https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
      0
    3. Kotestg Messages postés 16 Statut Membre
       
      ok
      0
    4. Kotestg Messages postés 16 Statut Membre
       
      Mais cela ne marche pas toujours
      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Si tu as respecté les consignes qui se trouvent dans les liens que je t'ai donné... tu devrais avoir un message d'erreur..... quel est il ??
      Et ensuite... montre nous ton code modifié !
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour
    $bdd n'est pas initialisé dans ton code... d'où vient cette variable ? Ttu requiree un fichier de connexion ?
    Montre ton code complet...

    0
  3. Kotestg Messages postés 16 Statut Membre
     
    Voici mon fichier de connexion connect.php

    <?php
    session_start();
    
    //connexion à la base de données
    
    try
    {
     // On se connecte à MySQL
     $bdd = new PDO('mysql:host=localhost;dbname=nonvitcha;charset=utf8', 'root', '',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    
    }
    
    catch(Exception $e)
    {
     // En cas d'erreur, on affiche un message et on arrête tout
    
            die('Erreur : '.$e->getMessage());
    }
    ?>
    0