Warning: Invalid argument supplied for foreach()

Résolu/Fermé
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 3 juin 2015 à 21:09
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 5 juin 2015 à 19:12
Bonjour,

J'ai cette erreur : Warning: Invalid argument supplied for foreach() in C:\wamp\www\rs\pages\membre.php on line 31

Voici mon membre.php :
<div class='header'>
<?php
 $result= infos_membre_connecte();
 $infos  = $result['result'];
if(count($infos)>0){
   $pseudo = isset($infos['pseudo'])?$infos['pseudo']:'';
   echo "Bienvenue ". $pseudo;
}else{
 echo "<br> Aucun résultat.";
}
if(!isset($_SESSION['pseudo']))
{
header("Location:index.php?page=login");
}
?>
<p><a href="index.php?page=logout">Se déconnecter</a></p>
</div>
<div class='menu'>
       <ul>
	           <li><a href="index.php?page=membre">Accueil</a></li>
			   <li><a href="">Changer vos informations</a></li>
			   <li><a href="">les membres</a></li>
			   <li><a href="">Vos amis</a></li>
			   <li><a href="">Invitations</a></li>
			   <li><a href="">Messages</a></li>
			   <li class="nbr"><?php echo nombre_membre() > 1 ? nombre_membre()." membres" : nombre_membre(). " membre"; ?></li>
       </ul>
</div>
<div class="info">
        <?php  
          foreach($infos as $info)
		  {
			    ?> 
				        <p><strong>Email</strong><em><?php echo $info['email']; ?></em></p>
			            <p><strong>Sexe</strong><em><?php echo $info['sexe']; ?></em></p>
						<p><strong>A propos de vous</strong><em><?php echo $info['apropos']; ?></em></p>
                <?php			  
 			  
		  }
		
        ?>
</div>


Merci d'avance ;)

8 réponses

jordane45 Messages postés 38279 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 novembre 2024 4 697
Modifié par jordane45 le 4/06/2015 à 20:51
Quand je demandais .. quel code tu as utilisé .... c'était ...
"Quel code tu as utilisé .... pour ENREGISTRER les données dans ta bdd ... " ?

Au passage ... les accolades ne sont pas nécéssaires aux lignes 31 et 38 !
.. et comme pour tous le reste... il est préférable de récupérer les variables AVANT de les utiliser .. (avec un ISSET + écriture TERNAIRE ! )
<?php
  // récupérations des variables AVANT de les utiliser
  $email   = isset($infos['email'])?$infos['email']:'';
  $sexe    = isset($infos['sexe'])?$infos['sexe']:'';
  $apropos = isset($infos['apropos'])?$infos['apropos']:'';
 ?> 
<div class="info">
 <p><strong>Email :</strong><em><?php echo $email; ?></em></p>
 <p><strong>Sexe :</strong><em><?php echo $sexe; ?></em></p>
 <p><strong>A propos de vous :</strong><em><?php echo $apropos; ?></em></p>
</div>



Cordialement,
Jordane
1
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
4 juin 2015 à 21:13
Merci bien !
vous parlez de ce code ?

<?php
//*********************************************//
//Fichier : membre.func.php
//*********************************************//
ini_set("display_errors", "1");
error_reporting(E_ALL);
//-------------------------------------------
// Include du fichier de connexion à la BDD
//-------------------------------------------
$DIR_SITE = $_SERVER['DOCUMENT_ROOT'] . "/rs"; // chemin racine de ton site
$CnxBDD = $DIR_SITE . "/functions/connect.php"; // emplacement du fichier depuis la racine de ton site

if(file_exists($CnxBDD)){
 require_once($CnxBDD) ;
}else{
 echo "<br><b>ERREUR !</b> Fichier $CnxBDD Introuvable";
}

/**
* function qui va recuperer les infos de l'utilisateur connecté
*/
function infos_membre_connecte()
{
   global $bdd; // déclaration globale de BDD
   $infos=array();
   $pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
   $sql = "SELECT * FROM utilisateurs WHERE pseudo = :pseudo";
   $params = array(":pseudo"=>$pseudo);
  
   //le temps des tests:
   $infos['sql'] = $sql;
   $infos['params'] = $params;
  
   //exécution de la requête
   try
   {
      $prepare = $bdd->prepare($sql);
      $prepare->execute($params);
      // on stocke le résultat de la requête dans un ARRAY
      $result = $prepare->fetchall();
      $infos['result'] = (count($result)>0) ? $result[0]  : NULL;
   }
   catch(Exception $e)
   {
      die('Erreur : '.$e->getMessage());
   }
}

//la function qui va compter le nombre de personnes inscrites
function nombre_membre() {
global $bdd; // déclaration globale de BDD
$req = $bdd->query("SELECT id FROM utilisateurs")or die(print_r($bdd->errorInfo()));
return $req->rowCount();
}
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
4 juin 2015 à 21:14
et que me suggériez vous pour ce soucis svp :) ?

1/ Dans mon espace membre, en haut à droite j'ai écris "Aucun résultat" ( http://www.noelshack.com/2015-23-1433354604-erreur.jpg ) au lieu de "Bienvenue [pseudo]" ( http://www.noelshack.com/2015-23-1433354604-erreur.jpg )
0