Rafraichirune page php

mystik -  
 Car0 -
Comment faire pour éviter qu'à chaque actualisation d'une page contenant un formulaire les données ne soit pas inserées dans la base de données. Merci d'avance

3 réponses

  1. freddy
     
    Meme chose pour moi aussi !!
    La réponse m'interesse aussi
    0
  2. Jon~301
     
    Tu fais une requete de selection pour vérifier que ce que tu ajoute n'est pas deja dans la base
    Si c'est présent tu fais un exit, sinon tu fais l'insertion

    Ainsi si tu actualises la page, t'aura un message qui dit que c'est deja ajouté (message que tu dois mettre toi même dns le script PHP, bien entendu).

    Ca devrait marcher ;)

    A+

    Jon
    0
  3. Car0
     
    Deux autres solutions :

    1-
    Séparer la page de traitement et le formulaire en 2 fichiers
    form.php et traitement.php (par exemple) Tu termines traitement.php par un redirect à form.php. Une formule que j'aime bien:

    form.php:
    <?if isset($_GET("err")) echo '<div class=\'err\'>'.$_GET("err").'</div>'?>
    ...
    <form action="traitement.php">
    ....
    


    Et traitement.php:
    ...
    if isset($error) header("Location: form.php?err=$error");
    else header("Location: form.php");
    


    C'est surtout pratique pour un traitement complexe. La réponse de Jon est certainement plus simple et pratique si le traitement se faire en moins de 10 lignes au début du fichier.

    2- Récupérer une erreur SQL (dublicata impossible). Quand tu crées ta base de données, tu crées un champ index unique. Le INSERT insère des données dans ce champs. MySql va se plaindre si un refresh est fait (impossible d'insérer. Duplicata impossible). Tu peux récupérer l'erreur avec mysql_errno() et mysql_error() et afficher le message en conséquence. Évidemment, ça ne s'applique pas à toutes les situations.

    Caro
    0