Détruire une variable de session après l'avoir testée ??!!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 nov. 2008, 13:19

met le var_dump tout au début de ta page
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 117 Messages

03 nov. 2008, 13:29

je l ai mise au début, il m'affiche bien toutes mes sessions sauf la session $_SESSION['ajout']

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 nov. 2008, 15:15

Visiblement, c'est que ta session n'est pas construite normalement.

Alors, plusieurs solutions:
  • ta session est vide et tu n'es pas passé par la page qui l'instancie : recommence l'opération en t'assurant que tu passes bien dans la 1ere page.
  • ta session est vide et tu es bien passé par la page qui l'instancie : vérifie que ton code rempli bien la session, pour cela, met le var_dump juste avant le header et bloque le header.
En relisant avec attention le code, je me dit qu'il est possible que tu n'es le warning que quand ta session n'est pas rempli. Dans ce cas là, je reprendrais ton code de la sorte :
<?php 
// Si la variable de session existe
if( isset($_SESSION['ajout']) )
{
    // Si la valeur contenu ne fait pas partie d'une liste "interdite"
    if( !in_array(array('perso', 'perso'), $_SESSION['ajout']) 
    {
?> 
    <div class="shop_tip"> 
        <b>Info</b>:  
        Message d'erreur 
        <br /> 
    </div><br /> 
<?php  
    }
    // Dans tout les cas, suppression de la variable de session
    unset($_SESSION['ajout']); 
} 
?>
Comme ça, PHP ne va tenter la suppression de la variable que si cette dernière existe, ce qui évitera tout message d'erreur.
Et je pense que tu nous aurais donné le message d'erreur dès le début, nous aurions surement gagné du temps ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer