Session : récupération des variables dans la page en cours
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 :
Code:
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> |
Le code de la page qui se contente de récupérer les variables :
Code:
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> |
Merci d'avance pour votre aide.