IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Undefined index sur une variable dans la superglobale $_SESSION


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut Undefined index sur une variable dans la superglobale $_SESSION
    Bonjour à tous,

    Comme le titre l'indique, je me retrouve avec un undefined index, que je n'arrive pas à résoudre.

    Voici un screen de l'erreur Nom : 5f434eacb8e682910f55ad906054b3b8.png
Affichages : 403
Taille : 11,4 Ko

    Et voici le code en question :
    Ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    	public function getListeInterlocuteurs( $contact_id ) {
    		$ret = array();
    		$_CHAMPS_INTERLOCUTEURS = 'I.I_CODE as I_CODE,
    									I.I_CODECONTACT as I_CODECONTACT,
    									I.I_NOM as I_NOM,
    									I.I_PRENOM as I_PRENOM,
    									I.I_TEL1 as I_TEL1,
    									I.I_TEL3 as I_TEL3,
    									I.I_EMAIL as I_EMAIL,
    									I.I_ADRESSE4 as I_ADRESSE4
    									';
    		$sql = "select ".$_CHAMPS_INTERLOCUTEURS." from CHAMP where I_CODECONTACT = '".StringTools::CleanInjectionFirebird(strtoupper(utf8_decode(trim($contact_id))))."' and I.I_INACTIF = 'F' order by I_NOM, I_PRENOM";
    		$_array_bind = array();
    		$results = InfocobDB::getInstance()->fetchAll( $sql, $_array_bind );
    		if ( isset( $results) && !empty( $results ) ) {
    			foreach ($results as $key => $val) :
    				$ret[] = array('CODE'=>utf8_encode($val['I_CODE']), 'NOM'=>trim(utf8_encode($val['I_NOM'].' '.$val['I_PRENOM'])), 'TEL'=>trim(utf8_encode($val['I_TEL1'])), 'PORTABLE'=>trim(utf8_encode($val['I_TEL3'])), 'EMAIL'=>trim(utf8_encode($val['I_EMAIL'])), 'ADRESSE'=>trim(utf8_encode($val['I_ADRESSE4']))); 
    			endforeach;
    		}
    		return $ret;
    	}
    Je stocke le tout dans une variable de session de cette manière là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public $listeInterlocuteur;
     
    public function connect( $login, $pass ) {
    ...
     
    $this->listeInterlocuteur = $this->getListeInterlocuteurs();
    $_SESSION['liste_interlocuteur'] = $this->listeInterlocuteur;
     
    ...
    }
    Pour ensuite l'afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <div class="form-group">
    		<label class="col-sm-3 control-label" for="">Interlocuteur :</label>
    		<div class="col-sm-9">
    			<select name="" id="" class="selectpicker form-control">
    			<option value="">Choix du destinataire</option>
    			<?php
    			if ( isset($_SESSION['liste_interlocuteur']) ) {
    				$total = count($_SESSION['liste_interlocuteur']);
    				for ( $i = 0; $i < $total; $i++ ) { 
    					//$sel = $_SESSION['codeclient'] == $_SESSION['liste_interlocuteur'][$i]['CODE'] ? ' selected="selected"':'';
    				?>
    					<option value=""><?php echo $_SESSION['liste_interlocuteur'][$i]['NOM']; ?></option>
    				<?php
    				}
    			} else
    				?><option>nul</option>
    			<?php
    			?>
    			</select>
    		</div>
    	</div>
    Le truc étant, que j'ai agis exactement de la même manière pour afficher des valeurs de ma bdd dans d'autres <option>, et ça fonctionnait à peu près. Mais là, j'ai cette erreur que je n'arrive pas à résoudre.

    Si quelqu'un à une quelconque idée, je suis preneur !

    Bonne journée à tous et bon weekend !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le nom et le numéro de ligne sont dans le message d'erreur.

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Bonjour Jreaux, décidément, on est lié

    Oui, ils le sont bien. Et c'est lors de l'affichage, la récupération de ma variable soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( isset($_SESSION['liste_interlocuteur']) ) {
    Mais je ne saurais l'expliquer, encore moins le résoudre...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Revois la logique de ton code.
    Notamment la chronologie (creation des variables, utilisation...).

    Car manifestement, soit elle n'est pas créée... soit il manque un session_start() (?)

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Le problème étant, que dans ce même fichier, d'autres variable de session sont utilisées. Donc l'hypothèse du session_start() est enlevé.

    Et je déclare exactement de la même manière cette nouvelle variable... D'ou le fait que je sèche..

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je vais proposer un débug de base : faire un var_dump($_SESSION) au début de la page et ajoute un echo après chaque insertion dans $_SESSION histoire de vérifier que tu passes bien où tu penses passer.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test sur une variable dans la session
    Par midou159 dans le forum Struts 2
    Réponses: 3
    Dernier message: 17/01/2011, 21h26
  2. 'Undefined index' sur une liste issue d'une requete
    Par Gareth dans le forum Langage
    Réponses: 9
    Dernier message: 26/05/2009, 11h35
  3. IF sur une variable SHELL dans un bout de SQL
    Par nicolas.pailheret dans le forum Linux
    Réponses: 4
    Dernier message: 15/05/2009, 14h15
  4. affichage d'une variable sur une image dans un mail
    Par diabli73 dans le forum Langage
    Réponses: 3
    Dernier message: 25/02/2009, 18h22
  5. Réponses: 3
    Dernier message: 05/08/2008, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo