Page 1 sur 1

variable session

Posté : 19 mars 2010, 20:25
par sankukai
Bonjour,

J'ai suivi un tuto : http://geai.univ-brest.fr/~cardot/lpd/e ... ession.php

Donc j'ai créé une page page1.php

Code : Tout sélectionner

<?php session_start(); ?> <html> <body> <form method="POST" action="page2.php"> Entrez votre nom : <input type="TEXT" name="nom"> <input type="SUBMIT" value="OK"> </form> </body> </html>
une page2.php

Code : Tout sélectionner

<?php session_start(); $nom = $_POST['nom']; $_SESSION['nom'] = $nom; ?> <html> <body> Bienvenue sur ce site <b><?php echo $nom; ?></b>.<br /> Regardons ce qui se passe sur la <a href="page3.php">page</a> suivante.<br /> </body> </html>
Et une page3.php

Code : Tout sélectionner

<?php session_start(); $nom = $_SESSION['nom']; ?> <html> <body> Vous êtes toujours parmi nous <b><?php echo $nom; ?></b>.<br /> Effacement de votre nom en cliquant <a href="page4.php">ici</a>.<br /> </body> </html>
Mon pb est que la variable session n'est "utilisable" qu'à la 3eme page, si je fais une requête quand je suis sur la deuxième page, la variable session n'a pas été enregistrée. En bref est t-il possible d'enregistrer la variable sur la deuxième page.

Merci

Re: variable session

Posté : 19 mars 2010, 20:30
par stopher
Je viens de tester tes pages à tout hasard ...

et à la page 2 :
<?php
session_start();
$nom = $_POST['nom'];
$_SESSION['nom'] = $nom;
?>
<html>
<body>
<?php echo $_SESSION['nom'];?> 
Bienvenue sur ce site <b><?php echo $nom; ?></b>.

Regardons ce qui se passe sur la
<a href="c.php">page</a> suivante.

</body>
</html>
J'affiche bien ma variable de session ... quelle est la requête qui ne fonctionne pas ?

Ch.

Re: variable session

Posté : 19 mars 2010, 20:36
par stopher
Apres effectivement , si tu reviens sur ta page2 apres être allé sur la page3 , ta session est effecé , ou plus exactement ,

$_SESSION['nom'] est réinitialisé .

Et oui les données $_POST n'héxistent plus , celà revient donc à faire
$_SESSION['nom'] = "";
Voilà ,

Ch.

Re: variable session

Posté : 19 mars 2010, 20:44
par sankukai
Ok merci,

Oui donc il n'y a pas de solution pour que je puisse revenir à la page 2 en ayant mes données ? quelle solution est ce que je peux employer pour cela ?

Re: variable session

Posté : 19 mars 2010, 20:48
par stopher
Tout simplement tester ta variable de session ... ou POST .

exemple :
if( !empty( $_POST['nom'] ) ){
    $_SESSION['nom'] = htmlentities($_POST['nom'],ENT_QUOTES);
}
Ainsi , $_SESSION['nom'] prend la valeur de $_POST['nom'] uniquement si celle-ci existe .. , donc si le formulaire vient d'être validé .

Ch.

Re: variable session

Posté : 19 mars 2010, 21:31
par sankukai
Merci pour la réponse mais je débute alors je sais pas trop... est ce que c'est un truc du genre... mais ça marche pas
<?php
session_start();
$nom = $_POST['nom'];
$_SESSION['nom'] = $nom;
if( !empty( $_POST['nom'] ) ){
    $_SESSION['nom'] = htmlentities($_POST['nom'],ENT_QUOTES);
}
?>

Re: variable session

Posté : 19 mars 2010, 21:35
par stopher
Il faut que tu retires les lignes qui ont étés remplacées ,
$nom = $_POST['nom'];
$_SESSION['nom'] = $nom;
Et à la place de $nom , dans le code en dessous , utilises toujours $_SESSION['nom'] , qui maintenant est filtré .

Ch.

Re: variable session

Posté : 22 mars 2010, 12:54
par sankukai
Merci bien c'est exactement ça. merci beaucoup ! =D>