Valeurs de sessions perdues
Publié : 06 janv. 2008, 12:34
Bonjour,
Je sus en train de réécrire un site de A jusqu'à Z.
Les utilisateurs du site s'inscrivent et remplissent une fiche qu'ils peuvent modifier à leur gré.
Ils se connectent à l'aide d'un identifiant et d'un mot de passe (rien que de très ordinaire).
Mon problème se situe justement au niveau de la modification des données par l'utilisateur.
Toutes les données saisies lors de l'inscription peuvent être modifiées et complétées : certaines informations sont facultatives, d'autres sont obligatoires. Il y a du texte, des textarea, des cases à cocher, des listes déroulantes, des boutons radio,.. bref, un peu de tout.
Le principe est le suivant : une fois connectée (je vérifie bien sûr que c'est le cas), la personne accède à sa fiche (extraction des données préalablement enregistrées). Elle peut les modifier à son idée à l'aide du formulaire qui ressemble à ça :
Lorsque c'est fait, elle peut visualiser le résultat (si des données obligatoires sont manquantes ou erronnées, on revient au formulaire). J'affiche par exemple :
La valeur de session est obtenue tout bêtement à partir de la donnée passée en POST :
(filtre est une petite fonction toute bête qui nettoie les données et que j'ai utilisée dans d'autres programmes, je l'ai déjà utilisée à plusieurs reprises sans aucun souci).
Je précise que lorsqu'on visualise les données, tout s'affiche absolument normalement (ce qui veut dire que toutes les valeurs de sessions sont bien créées), aucune donnée n'est perdue. Il n'y a évidemment aucun unset, aucun session_destroy().
Mais lorsqu'on revient au formulaire (bouton « modifier »)... Tout fonctionne parfaitement avec Opera, les valeurs de session sont toutes bien présentes. Idem avec IE7. J'étais contente... jusqu'à ce que je teste avec Firefox 2.0.0.11...
Sous Firefox, toutes les informations facultatives sont perdues (c'est-à-dire toutes les données qui peuvent éventuellement être à blanc). En clair, Firefox, et lui seul, perd certaines valeurs de session !
Si quelqu'un peut m'aider à démêler cet imbroglio, je lui en serait très reconnaissante, parce que là, j'avoue ne pas comprendre du tout ce qui se passe !
Message envoyé avec : Opera/9.25 (Windows NT 5.1; U; fr)
Je sus en train de réécrire un site de A jusqu'à Z.
Les utilisateurs du site s'inscrivent et remplissent une fiche qu'ils peuvent modifier à leur gré.
Ils se connectent à l'aide d'un identifiant et d'un mot de passe (rien que de très ordinaire).
Mon problème se situe justement au niveau de la modification des données par l'utilisateur.
Toutes les données saisies lors de l'inscription peuvent être modifiées et complétées : certaines informations sont facultatives, d'autres sont obligatoires. Il y a du texte, des textarea, des cases à cocher, des listes déroulantes, des boutons radio,.. bref, un peu de tout.
Le principe est le suivant : une fois connectée (je vérifie bien sûr que c'est le cas), la personne accède à sa fiche (extraction des données préalablement enregistrées). Elle peut les modifier à son idée à l'aide du formulaire qui ressemble à ça :
Code : Tout sélectionner
echo '<tr><td class="col1fac"><a href="#pop10" class="pop">Horaires préférés<br><span class="info">30 caractères</span></a></td>
<td class="col3"><input type="text" class="boitefac" name="hor" size="30" maxlength="30" value="'.stripslashes($_SESSION['hor']).'"></td></tr>';
Code : Tout sélectionner
echo '<tr>
<td class="col1facdesc">Horaires préférés</td>
<td class="col3desc">'.stripslashes($_SESSION['hor']).'</td>
</tr>';
Code : Tout sélectionner
$hor=filtre($_POST['hor']);
$_SESSION['hor']=$hor;
Je précise que lorsqu'on visualise les données, tout s'affiche absolument normalement (ce qui veut dire que toutes les valeurs de sessions sont bien créées), aucune donnée n'est perdue. Il n'y a évidemment aucun unset, aucun session_destroy().
Mais lorsqu'on revient au formulaire (bouton « modifier »)... Tout fonctionne parfaitement avec Opera, les valeurs de session sont toutes bien présentes. Idem avec IE7. J'étais contente... jusqu'à ce que je teste avec Firefox 2.0.0.11...
Sous Firefox, toutes les informations facultatives sont perdues (c'est-à-dire toutes les données qui peuvent éventuellement être à blanc). En clair, Firefox, et lui seul, perd certaines valeurs de session !
Si quelqu'un peut m'aider à démêler cet imbroglio, je lui en serait très reconnaissante, parce que là, j'avoue ne pas comprendre du tout ce qui se passe !
Message envoyé avec : Opera/9.25 (Windows NT 5.1; U; fr)