Souci de session utilisateur

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

  1. 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.
    1. Modérateur
      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>";
      
    2. @jordane45Pour 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.
    3. Je voie effectivement je vais du coup arranger ça aussi merci ...
  2. 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
    1. Oui c'est bien ce type d’erreur que j'ai donc cela viendrais de la session alors ...
    2. y a-t-il des paramètres spécifiques à mettre entre les parenthèses de session_cache_limiter() ?
  3. voilà exactement le problème que j'ai, même situation ...

    http://forum.alsacreations.com/topic-20-72571-1-RESOLUquotConfirmerlenouvelenvoiduformulairequot.html
    1. Modérateur
      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 )