Notice: Undefined variable: infos
                    
        
     
             
                    Zakarya93
    
        
    
                    Messages postés
            
                
     
             
            1026
        
            
                                    Statut
            Membre
                    
                -
                                     
Zakarya93 Messages postés 1026 Statut Membre -
        Zakarya93 Messages postés 1026 Statut Membre -
        Bonjour, 
J'obtiens ceci : http://www.noelshack.com/2015-23-1433332144-erreur.jpg
Membre.php :
Membre.func.php :
Une solution svp ? Merci d'avance :)
                
            
                
    
    
    
        J'obtiens ceci : http://www.noelshack.com/2015-23-1433332144-erreur.jpg
Membre.php :
<div class='header'>
<?php
 $result= infos_membre_connecte();
//----------------------------------------//
 //le temps des tests :
//----------------------------------------//
 echo "<pre> Result de la fonction : <br>";
 print_r( $infos );
 echo "</pre>";
//----------------------------------------//
 
 $infos  = $result['result'];
 foreach($infos as $info){
   $pseudo = isset($info['pseudo'])?$info['pseudo']:'';
   echo "Bienvenue ". $pseudo;
 }
?>
</div
Membre.func.php :
<?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
 $infos['result'] = $prepare->fetchall();
}catch(Exception $e){
  die('Erreur : '.$e->getMessage());
}
 
return $infos;
}
Une solution svp ? Merci d'avance :)
        A voir également:         
- Notice: Undefined variable: infos
- Notice gratuite - Guide
- Notice chromecast - Guide
- Notice télécommande universelle grundig - Forum Téléviseurs
- Uleway g381 notice - Forum Mobile
- Homday x-pert écouteur bluetooth notice ✓ - Forum Casque et écouteurs
2 réponses
                        
                    Salut,
A la ligne 8 du fichier Membre.php tu essayes d'afficher la variable $infos alors que celle-ci n'existe pas encore.
La solution est de déplacer ton affichage de test (le code de la ligne 4 à la ligne 10) après l'affectation de la variable $infos (donc après la ligne
Bonne journée
    
                A la ligne 8 du fichier Membre.php tu essayes d'afficher la variable $infos alors que celle-ci n'existe pas encore.
La solution est de déplacer ton affichage de test (le code de la ligne 4 à la ligne 10) après l'affectation de la variable $infos (donc après la ligne
$infos = $result['result'];).
Bonne journée
<div class='header'>
<?php
 $result= infos_membre_connecte();
 $infos  = $result['result'];
if(count($infos)>0){
 foreach($infos as $info){
   $pseudo = isset($info['pseudo'])?$info['pseudo']:'';
   echo "Bienvenue ". $pseudo;
 }
}
?>
</div>
 
Cordialement,
Jordane
    Pas d'erreurs mais c'est affiché sur un bandeau blanc avec fond noir : Bienvenue Bienvenue Bienvenue Bienvenue Bienvenue Bienvenue Bienvenue Bienvenue Bienvenue Bienvenue Bienvenue Bienvenue
Mon membre.func.php :
    Mon membre.func.php :
<?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();
if(count($result)!=0) $infos['result'] = $result[0];
else $infos['result'] = null;
}catch(Exception $e){
  die('Erreur : '.$e->getMessage());
}
return $infos;
}
    
    Déjà .. évites quand tu le peux.. de faire des IF ELSE comme ça .. et préfères utiliser l'écriture TERNAIRE
Revient à écrire plus simplement :
Et donc dans ta page d'affichage tu peux ensuite mettre :
    if(count($result)!=0) $infos['result'] = $result[0]; else $infos['result'] = null;
Revient à écrire plus simplement :
$infos['result'] = (count($result)>0) ? $result[0] : NULL;
Et donc dans ta page d'affichage tu peux ensuite mettre :
<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.";
}
?>
</div>
     
    
    
    
    
code correct :
Result de la fonction :
Array ( [0] => Array ( [id] => 16 [0] => 16 [pseudo] => machintruc [1] => machintruc [password] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa [2] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa [email] => xxx@gmail.com [3] => xxx@gmail.com [sexe] => Homme [4] => Homme [apropos] => salut les gens [5] => salut les gens ) ) Bienvenue machintruc
alors que je veux seulement "bienvenue machintruc "... :/
(Adresse mail supprimée par la modération)
plutôt faire ceci
car je cherche pas a avoir qu'un seul user... cela permettra de n'avoir qu'un seul tableau qui correspond bien à mon user.
Et du coup dans ùon fichier Membre.php, je teste si $result['result'] n'est pas null et j'affiche directement mon user ainsi :