$_SESSION ne fait pas ce

Fermé
chupei - 11 févr. 2012 à 18:14
afrnos Messages postés 59 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 - 13 févr. 2012 à 09:46
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

afrnos Messages postés 59 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 16
Modifié par afrnos le 12/02/2012 à 05:17
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
0
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 !
0
afrnos Messages postés 59 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 16
13 févr. 2012 à 09:46
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 ?
0