Souci de session utilisateur

damien -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je vous adresse ce message car je rencontre une petite difficulté, j'ai créé un site web en php/mysql avec un système de session utilisateur le problème est que quand je fais de la navigation sur le site web notamment une page précise, et que je clique sur le précédent cela m'affiche une page je cite "Le document a expiré" alors pour l'afficher je relance la page et je la voie, la navigation en elle-même fonctionne mais c'est lorsqu'une URL se présente sous cette forme :


index.php?page=affiche&numero=17&numero_film=17



Lors du clique sur le lien qui amène vers ce type URL la page s'affiche correctement c'est juste au moment de cliquer sur le bouton précédent du navigateur que ça ne fonctionne pas.

là dès que je fais précédent du navigateur j'ai une page marquer le document à expirer.


Savez-vous d'où pourrait venir ce problème.

5 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Difficile de te répondre sans savoir quel mécanisme (quel code...) tu as mis en place pour afficher tes pages......


PS: **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
0
damien
 
Et bien au faite mécanisme est assez compliqué à expliquer et a faire non, mais je vais essayer, pour faire simple j'ai une page index qui affiche les entrées d'une table qui contient une liste de film avec des informations comme l'auteur, la date de sortie etc.

Chaque film a un numéro 1,2, 3,4 etc., qui est transférée dans une variable GET et puis une autre est aussi envoyé car celle-ci est connectée à une autre table qui elle, est là pour fournir les messages poster sur ce film et pour se référé à celui-ci j'ai pris le numéro du film ce qui fait qu'au final chaque film a ça propre page avec cette propre information liée ces commentaires.

grosso modo c'est comme ça, que ça fonctionne.

Après peut être que cela ne viens pas de la session en elle même ces justement dans ce procédé quand la personne clique sur ce genre de liens :

echo '<td align="center" style="vertical-align:middle">';
echo '<form action="?page=affiche&numero='.mysql_real_escape_string(htmlspecialchars($result->numero_films)).'&numero_film='.mysql_real_escape_string(htmlspecialchars($result->numero_films)).'" method="post">';
echo '<button type="submit" class="btn btn-danger" title="Détails supplémentaires du film - '.mysql_real_escape_string(htmlspecialchars($result->film_titre)).'" >'.mysql_real_escape_string(htmlspecialchars($result->film_bouton)).'</button>';
echo '</form>';


La page affiche les bonnes informations lier à l'affiche du film mais si l'utilisateur veut faire précédente avec son navigateur cela donne la page citée plus haut.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Pourquoi avoir utilisé des balises FORM ... alors qu'un "simple" LIEN suffirait dans ce cas précis ???

$lien = "?page=affiche&numero=".mysql_real_escape_string(htmlspecialchars($result->numero_films))."&numero_film=".mysql_real_escape_string(htmlspecialchars($result->numero_films));
echo "<a href='".$lien."' 
         class='btn btn-danger' 
         role='button' 
         title='Détails supplémentaires du film ".mysql_real_escape_string(htmlspecialchars($result->film_titre))."'> 
     ".mysql_real_escape_string(htmlspecialchars($result->film_bouton))."
     </a>";
0
damien > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Pour répondre à ta question j'utilise un framework nommer boostrap et leur bouton est sémite ne peut effectuer l'action que s'il est entre 2 formes voilà pourquoi un simple lien le suffisait pas.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > damien
 
J'ai bien vu que tu utilisais bootstrap ... mais si tu regardes bien leur doc.. tu verras que tu peux utiliser un lien qui aura la forme d'un bouton....
https://getbootstrap.com/css/#buttons
0
damien
 
Je voie effectivement je vais du coup arranger ça aussi merci ...
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Tu dois pouvoir éviter ce problème en utilisant le principe POST Redirect GET : https://fr.wikipedia.org/wiki/Post-Redirect-Get

Sinon, il semble également possible de corriger cela avec la fonction session_cache_limiter() : http://blog.netapsys.fr/php-le-document-a-expire/

Bonne journée
0
damien
 
Oui c'est bien ce type d’erreur que j'ai donc cela viendrais de la session alors ...
0
damien
 
y a-t-il des paramètres spécifiques à mettre entre les parenthèses de session_cache_limiter() ?
0
damien
 
voilà exactement le problème que j'ai, même situation ...

http://forum.alsacreations.com/topic-20-72571-1-RESOLUquotConfirmerlenouvelenvoiduformulairequot.html
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Si c'est toujours en rapport avec ta question de départ :
As tu utilisé des LIENS comme je te l'ai préconisé ?
(et donc.. plus aucune "FORM" ) ?

Si c'est un nouveau problème lié à un de tes formulaires .. c'est normal...
A chaque fois que tu rafraichi une page (ou que tu faire précédent...) dans laquelle tu as fais un SUBMIT ... il te redemande si tu veux renvoyer les informations..... c'est le fonctionnement "normal".

Tu peux éviter ça en utilisant, par exemple, de l' AJAX (mélange de javascript et php)
( les tutos et exemples ne manquent pas à ce sujet sur le net )
0