$_SESSION ne fait pas ce

Bonjour,
j'ai une page avec
//test
if (empty($_SESSION['cpt'])){
$_SESSION['cpt']=0;
}
if (isset($_SESSION['cpt'])){
$_SESSION['cpt']+=1;
echo $_SESSION['cpt'];
}
je clic sur un bouton "envoyer" (formulaire) qui normalement fait réactualiser la page, donc je devrais voir afficher 1 la première fois; 2 la deuxième etc. Mais ce n'est pas le cas, $_SESS affiche tjs 1 ? Comment cela ? Merci...

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Vous ne pouvez pas utiliser les variables de Session sans avoir au préalable créé cette session.

    Dans votre code, la condition :
    if (empty($_SESSION['cpt']))

    est toujours vraie, car aucune session n'a été crée avant l'appel de la variable $_SESSION, et donc vous verrez toujours "1".

    Vous devez ajouter cette fonction au début de chaque page utilisant des variables de session :
    session_start();


    Ce qui donne :
    <?php  
    //test  
    session_start();  
    
    if (empty($_SESSION['cpt'])){  
        $_SESSION['cpt']=0;  
    }  
    if (isset($_SESSION['cpt'])){  
        $_SESSION['cpt']+=1;  
        echo $_SESSION['cpt'];  
    } ?>

    Afrnos GH
    1. merci de ta réponse, mais mnt mon code est

      if (empty($_POST['cpt'])){
      $_POST['cpt']=0;
      }
      if (isset($_POST['cpt'])){
      $_POST['cpt']++;
      echo $_POST['cpt'];
      }

      :s !!! Peux-tu m'aider car j'ai le même problème !
      1. Oula ... as-tu au moins un formulaire avec la méthode POST dans ta page ?

        $_POST est transmis de page en page, oui ok ! Mais pas en rechargeant la page !
        Il faut que ca soit via un formulaire :
        <form method="post">
            <!-- Formulaire -->
        </form>

        Quel est ton but final avec ce code ?