Sessions et formulaires en PHP
Supposons que nous ayons deux fichiers PHP. Dans le fichier
test1.php, plaçons un formulaire demandant
à l'utilisateur deux nombres :
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
Dans ce même fichier, plaçons le code de traitement du formulaire. Dans ce code, nous enregistrerons les données des inputs dans la session :
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Nuance importante : dans le fichier, le code de traitement du formulaire doit se trouver avant le formulaire lui-même. Pourquoi : parce que dans ce code, nous travaillons avec la session, et donc il ne doit y avoir aucune sortie vers l'écran avant cela.
Maintenant, dans le fichier test2.php, trouvons
la somme des nombres sauvegardés dans la session :
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
Dans quelle séquence tout cela doit-il
fonctionner ? D'abord, l'utilisateur accède à la
page test1.php, remplit le formulaire
et appuie sur le bouton. Ensuite, il arrive à nouveau
sur test1.php, mais cette fois avec les données
du formulaire envoyées.
Il entre alors dans la condition
dans laquelle nous écrivons les données du formulaire dans la session.
Ensuite, l'utilisateur doit accéder manuellement à la
page test2.php - et là, il verra
la somme des nombres saisis.
Vous pouvez vous demander : pourquoi faire si compliqué ? Après tout,
on aurait pu envoyer le formulaire directement vers la page
test2.php. Le fait est que dans ce
cas, l'avantage est que le formulaire lui-même et le code
de son traitement se trouvent sur la même page.
Bien sûr, ce n'est pas toujours pratique, mais parfois
c'est nécessaire.
Sur une page, demandez à l'utilisateur son nom, son prénom et son âge à l'aide d'un formulaire. Enregistrez ces données dans la session. Lors de l'accès à une autre page, affichez ces données à l'écran.