Bonjour,
Je ne sais pas si je poste au bon endroit car je suis débutante mais il s'agit d'un problème de session.
Voici le souci :
J'ai un formulaire où je demande des couleurs (de texte et de fond) pour les sauvegarder dans des variables de session.
Il y a un lien vers une autre page qui utilise ces variables de session et cela fonctionne
Mon problème est que je voudrais que quand je valide le formulaire (et que je mets à jour donc les variables de session) et que je reste dans la page courante, les nouvelles variables de session soient prises en compte, mais cela ne fonctionne pas. Il me faut charger une autre page puis recharger la page en question pour voir la mise à jour des variables de session.
Je ne comprends pas pourquoi. Pourriez-vous m'aider à comprendre ce qui ne va pas ?
Le code pour la page du formulaire qui met à jour les variables :
Le code de la page qui se contente de récupérer les variables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 <?php $couleurTexte = 'black'; $couleurFond='white'; //On récupère les variables de session si elles existent session_start(); if(isset($_SESSION['couleurFond'])){ $couleurFond = $_SESSION['couleurFond']; } if(isset($_SESSION['couleurTexte'])){ $couleurTexte = $_SESSION['couleurTexte']; } ?> <!Doctype html> <html> <head> <meta charset = 'UTF-8'/> <style type="text/css"> <?php echo 'h1,h2{background-color : '.$couleurFond.'; color : '.$couleurTexte.';}'; ?> </style> </head> <body> <h1>Livre - chapitre 12 : Les sessions</h1> <h2>Exercice 7</h2> <?php echo <<<_ENONCE Reprendre lexercice 1 en enregistrant les préférences du visiteur dans des variables de session pour afficher toutes les pages du site avec ses couleurs préférées. Ex 1 : Créer un formulaire de saisie des deux codes couleur préférés du visiteur du site pour la couleur de fond et le texte de la page. Les enregistrer dans deux cookies valables deux mois. À louverture de la page daccueil, récupérer ces valeurs et créer un style utilisant ces données. _ENONCE ?> <p>Formulaire :</p> <setfield><legend>Vos préférences</legend> <form method = 'post' action = '#' > <label for = 'couleurFondHtml'>Couleur du fond : </label><input type = 'text' name = 'couleurFond' <?php echo "value=$couleurFond"; ?> id ='couleurFondHtml' /><br /> <label for = 'couleurTexteHtml'>Couleur du texte : </label><input type = 'texte' name = 'couleurTexte' <?php echo 'value='.$couleurTexte; ?> id = 'couleurTexteHtml'/><br /> <input type = 'reset' value = 'Anciennes valeurs' /> <input type = 'submit' value = 'Enregistrer' /> </form> </setfield> <?php //Si le formulaire a été renseigné if(isset($_POST['couleurFond']) && isset($_POST['couleurTexte'])){ //On enregistre les variables de session avec les champs du formulaire $_SESSION['couleurFond'] = $_POST['couleurFond']; $_SESSION['couleurTexte'] = $_POST['couleurTexte']; } ?> <p><a href='livreChap12Ex7b.php'>Lien vers une autre page</a></p> </body> </html>
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 <!Doctype html> <html> <head> <meta charset = 'UTF-8'/> </head> <body> <h1>Livre - chapitre 12 : Les sessions</h1> <h2>Exercice 7</h2> <?php echo <<<_ENONCE Reprendre lexercice 1 en enregistrant les préférences du visiteur dans des variables de session pour afficher toutes les pages du site avec ses couleurs préférées. Ex 1 : Créer un formulaire de saisie des deux codes couleur préférés du visiteur du site pour la couleur de fond et le texte de la page. Les enregistrer dans deux cookies valables deux mois. À louverture de la page daccueil, récupérer ces valeurs et créer un style utilisant ces données. _ENONCE ?> <h3>Page récupérant les variables de session :</h3> <?php session_start(); //On récupère les variables de session si elles existent if(isset($_SESSION['couleurFond'])){ $couleurFond = $_SESSION['couleurFond']; } if(isset($_SESSION['couleurTexte'])){ $couleurTexte = $_SESSION['couleurTexte']; } echo '<p>Couleurs du texte : '.$couleurTexte.'</p>'; echo '<p>Couleurs du fond : '.$couleurFond.'</p>'; ?> <p><a href='livreChap12Ex7.php'>Lien vers Préférences</a></p> </body> </html>
Partager