Problème de code

Résolu
Kotestg Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
Kotestg Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

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



1
Kotestg Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
$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
Kotestg Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
ok
0
Kotestg Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Mais cela ne marche pas toujours
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
0
Kotestg Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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