Bonjour à tous,
Je rencontre un problème dans la gestion de mes variables de session lorsque la valeur mémorisée
comporte des Apostrophes.. pourtant, je ne comprend pas la différence de comportement
et malgré l'affichage avec des ECHO dans tous les sens.. je ne trouve pas mon erreur...
Voila ce que je fais:
J'ai construit une série de liens de recherche par région avec des infos de régions qui se trouvent en BDD:
Exemple: Drôme[id=1] et Côtes-d'Armor [id=4533]
exemple de lien construit :
Lorsque l'utilisateur clic sur mon lien, je mémorise la région qu'il a choisi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part index.php?/region/4533&country=1&state=4533 (je les passe donc en GET)
je mémorise en session, l'identifiant de région et son libelle...
Ensuite, j'affiche le choix de mon utilisateur à l'écran... (en fait il choisi la mise en place de filtre de recherche par région)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $page['state'] = 0; if (isset($_GET['state'])){ $page['state'] = $_GET['state']; setcookie('state', $page['state'], (time() + 3600)); $_SESSION['state'] = $page['state']; //l'identifiant de mon département $_SESSION['state_name'] = get_state_name($page['state']) ; //le libelle de mon département }
Je passe par un template, je relis ma variable de $_SESSION pour afficher le libelle pour l'utilisateur
Dans la page HTML, j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $bstate = (isset($_SESSION['state']))? $_SESSION['state'] :0; //affichage du filtre ou non if ($bstate>0){ // envoi de l'identifiant du departement et son libelle au template $template->assign_block_vars( 'searches.Selectedstate', array( 'bstate' => $bstate, //= id du departement 'name' => $_SESSION['state_name'] //= libelle du departement ) ); }
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <form method="post" action="{searches.Selectedregion.F_SIMPLESEARCH}" id="regionfilter"> <input type=text name="simplesearch_words" value="{searches.simplesearch.words}"> <input type="submit" name="submit" value="{lang:submit}"> Regions <ul style="list-style-type:none; margin-top:0px;"> <li> <input type="submit" name = "nocountry" value="x"> {lang:Country}: {searches.Selectedcountry.name} ({searches.Selectedcountry.bcountry}) </li> <li> <input type="submit" name = "nostate" value="x"> {lang:State}: {searches.Selectedstate.name} ({searches.Selectedstate.bstate}) </li> </ul> </form>
à l'affichage j'ai bien mes boutons pour supprimer mes filtres de region:
je vois ça... ( le |x| symbolise le bouton que j'ai mis à l'écran)
Regions
|x| Pays: France (1)
|x| Département: Côtes-d'Armor (4533)
On dirait que ça marche mais...
si j'utilise mon bouton name="submit" (le premier) =>
Si l'utilisateur avait choisi France/Drome puis France/Côtes-d'Armor
=> C'est la drôme qui s'affiche à nouveau mon affichage devient:
Regions
|x| Pays: France (1)
|x| Département: Drôme (1)
Si l'utilisateur a directement choisi France/Côtes-d'Armor
=> C'est mon filtre département qui disparait
Regions
|x| Pays: France (1)
J'ai cherché sur le forum s'il y avait un truc à faire pour la variable
contenant des apostrophes, mais je ne trouve pas ce qui pourrait corriger...
Pouvez vous me donner un p'tit coup de main?
Merci d'avance à tous le monde!
Laurence
PS: petite précision: le session_start(); est fait au login de l'utilisateur
Partager