Notice: Undefined index: pseudo in C:\wamp

Fermé
mpl - 8 mars 2011 à 21:26
 fatoumata - 11 avril 2011 à 03:22
Bonjour,

j'essaye de régler cette erreur mais sans résultat si quelqu'un peut donner un coup de main et merci

      <?php
//on demarre la session
session_start();

// condition !empty veut dire si $_SESSION['pseudo'] est different de vide 
// en effet ! veut dire inverse
if(!empty($_SESSION['pseudo'])){
   // Connexion à  la base de données

		   try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=pfe', 'root', '', $pdo_options);
    
    // Récupération des 5 derniers messages
    $reponse = $bdd->query('SELECT pseudo, message,date FROM chat ORDER BY ID DESC LIMIT 0, 5');
    
    // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
    while ($donnees = $reponse->fetch())
    {
		echo '<p><strong>' .($donnees['date']). '      ' .htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) .  '</p>';
    }
    
    $reponse->closeCursor();
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}

$reponse->closeCursor();
}
?>
</td> 
  <tr>
    <td>
      <center>
    <form action="minichat_post.php" method="post">
  <p> </p>
  <p>
    <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" value='<?php echo $_SESSION['pseudo']; ?>'  /><br /><br />
    <label for="message">Message</label> :  <input type="text" name="message" id="message" /><br />
    <br />
    <input type="submit" value="Envoyer" />
  </p>
    </form></center></td>
 </tr>

 </table>


6 réponses

j'ai pu corriger l'erreur en faisant ceci
value='<?php if (isset($_SESSION['pseudo'])){ echo $_SESSION['pseudo'];}?>'  />

mais si je n'envoie pas un message les messages du chat qui se trouve ne s'affiche pas
1
salut j'ai eu le même problème et ta solution m'a permis de le résoudre alors merci
0
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
Modifié par Doctor C le 8/03/2011 à 22:06
Une erreur de type undefined index veut dire qu'un champ d'un tableau n'est pas initialisé. Dans ton cas, je suspecte la ligne:

if(!empty($_SESSION['pseudo'])){

que tu pourrais sûrement remplacer par:
if( isset($_SESSION['pseudo']) ){

Sinon, as-tu le numéro de la ligne où se trouve l'erreur?

Un peu d'info ici:
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index

Echo "Lima Mike Alfa";
0
salut
j'ai essayer avec isset mais c'est toujours la même erreur
voila la ligne 101
<label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" value='<?php echo $_SESSION['pseudo']; ?>'  /><br /><br />


Merci pour votre aide
0
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
8 mars 2011 à 22:22
Hmm, l'erreur semble vraiment être l'absence de l'index 'pseudo' dans ton tableau $SESSION.

Essaie sur la ligne précédente de taper:
print_r($SESSION);

pour afficher le contenu de ta session.

Tu pourras constater si quelquechose se trouve à l'index 'pseudo'.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
en faisant
 <?php print_r($SESSION); ?>
    <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" value='<?php echo $_SESSION['pseudo']; ?>'  /><br /><br />
    <label for="message">Message</label> :  <input type="text" name="message" id="message" /><br />
    <br />
    <input type="submit" value="Envoyer" />


j'ai l'erreur:

Notice: Undefined variable: SESSION in C:\wamp\www\Site\site\chat.php on line 101
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
Modifié par chico200987 le 8/03/2011 à 22:42
Salut,

C'est $_SESSION et non $SESSION ;)

Sinon, ce n'est pas une erreur, mais une NOTICE, une information..

Tu peux les desactiver en modifiant ton php.ini mais effectivement c'est toujours plus propre de ne pas en avoir du tout.

Tu peux essayer quelque chose comme :
<label for="pseudo">Pseudo</label> : 
<input type="text" name="pseudo" id="pseudo" value="'<?php (isset($_SESSION['pseudo'])) ? echo $_SESSION['pseudo'] : echo "" ?>'"  /><br /><br />
0