Variable Session (Précédent) !

dexter-morgan
Invité n'ayant pas de compte PHPfrance

07 oct. 2013, 15:22

Bonjour à tous,

Etant débutant en php j'aurais besoin d'aide svp concernant un site que je développe en partie en php.

Le problème est le suivant :

J'utilise le support des sessions de PHP qui me permet de conserver des données entre différents pages. Lorsque je passe d'une page à l'autre j'ai une variable qui se met à jour via des calculs.

Cependant lorsque je clique sur précédent (bouton du navigateur ou bouton crée), cette variable $_SESSION['variable'] n'est pas à jour et reste à l'etat d'origine.

(0)Etat0-------->(1)Etat1----------->(2)Etat2---------->(3)Etat1

(0)Etat0 : $_SESSION['variable']=""
(1)Etat1 : $_SESSION['variable']="base"
(2)Etat2 : $_SESSION['variable']="màj"
(3)Etat1 : $_SESSION['variable']="base" :(

Sachant qu'à chaque page il y a :

session_cache_limiter('private_no_expire, must-revalidate');
session_start();

Je voudrais une variable qui soit à jour lorsque je passe d'une page à la page précédente.
Quelles solutions me proposez vous ?

Merci à tous

Eléphant du PHP | 116 Messages

07 oct. 2013, 16:00

Hellow,

Tu peux créer une seconde variable, comme par exemple $_SESSION['etape'] et tu l'incréments à chaque étape.
Et tu vérifies, avant d'assigner $_SESSION['variable'] que la variable $_SESSION['etape'] ne correspond pas à une étape supérieure.

Voilà ce que je propose, si toutefois j'ai bien compris ton idée !

A bientôt !
@+,
Computarelier

dexter-morgan
Invité n'ayant pas de compte PHPfrance

07 oct. 2013, 16:10

Oui merci tu as bien compris mon idée mais cela ne resout malheureusement pas mon problème.

en suivant ton conseil :

Etat0 --->
$_SESSION['variable']=0;


Etat1 --->
$page_etat = 1;
if ($_SESSION['variable'] < $page_etat) {
     $_SESSION['variable'] = $page_etat;
}
en ajoutant
 echo $_SESSION['variable']; 

Etat2 --->
$_SESSION['variable']=5;

en cliquant sur précédant à l'etat2, je devrais normalement avoir une valeur égal à 5, or je retombe sur une valeur égal à 1...

Eléphant du PHP | 116 Messages

07 oct. 2013, 18:45

Comparé à mon idée, il te manque une variable dans ton code. Regarde, je joue avec 3 variable :

$page_etat = 1;
if ($_SESSION['etape'] < $page_etat) {
     $_SESSION['variable'] = $page_etat;
}

A+ :-)
@+,
Computarelier