Script php-mysql+ actualisation navigateur

Bonjours à tous :)

Ptite problematique:

Un formulaire php (form.php avec des variables POST) vient remplir une base de données via le script (script.php). L'insertion se passe niquel, et à vrai dire il n'y a pas de pb.
Cependant, si on réactualise la page (script.php) cela incrémente la base de la meme valeur...encore et encore à chaque clic de réactualisation...
Comment empecher cela?

(pourtant je réinitialise bien mes valeurs au début...mais que néni ca continue)

Merci d'avance pour vos lueurs :)

3 réponses

  1. salut,
    Il me semble que tu peux eviter ce problème en utilsant une redirection :
    1 -> la page qui propose ton formulaire
    2 -> POST (action navigateur)
    3 -> script qui traite le formulaire et qui fait une redirection
    4 - > la page qui fait l'affichage
    Pour faire une redirection, avant tout affichage dans la page en php:
    header( "Location: $url_absolu_de_la_page" ) ;

    Tu peux mettre une url relative, mais certains navigateurs ne supportent pas bien
    le changement de dossier.
    A+, crabs
    3
    1. Contributeur
      Aucune lueurs??
      1
      1. Un moyen très simple:

        Une variable de session qui s'incrémente à chaque page. Dans le formulaire, une variable de type 'hidden' qui a la valeur de la variable session courante.

        Le script qui traite les données de formulaire ne s'exécute que si la variable cachée renvoyée par le formulaire est égale à la variable de session - 1 .

        Exemple:
        Au début de la page:
        $_session['page'] ++ //(il ne faut pas oublier, si la variable n'existe pas, de la créér avant)
        
        <form>
        <input type = 'hidden' value = $_session['page'] name = 'page'>
        </form>
        
        et le script qui traite le formulaire:
        
        if ( "si c'est le formulaire qui a été envoyé" && $_post['page'] =  $_session['page'] -1 )
                       // le script qui traite les données du formulaire est exécuté. 


        Je ne sais pas si la méthode est sûre au niveau de la sécurité, mais a priori elle ne devrait pas l'être moins que le script séparé.

        Julien
        1