bonjour,
je crée en ce moment un module de faq dynamique, qui se décompose pour l'instant en 2 fichiers:
- mon 'post.php' contient un formulaire de question / réponse à poster vers 'main.php'
- mon 'main.php' contient des routines pour afficher l'ensemble de mes posts triés, réceptionner un formulaire (question ou réponse) et l'enregistrer s'il est cohérent + 2 liens vers les 2 formulaires de 'post.php'
Ca tourne en boucle: lorsque je remplis un formulaire de question (valable aussi pour réponse) et que je l'envoie vers 'main.php', je retombe sur ma page 'main.php' avec mon tableau trié contenant ce nouveau message... Seulement, lorsque je tape sur F5 pour refresh, ca me pond à chaque fois un nouvel enregistrement avec les données réceptionnées du forulaire de 'post.php', donc si je fais N refresh ca me balance N enregistrement identiques (logique puisqu'issus des memes champs postés) dans ma bdd...
J'ai essayé plusieurs trucs déja:
- lorsque je vérifie la validité des champs du formulaire, je les conserve dans une variable lambda_N, j 'unset()' la variable postée ($_POST['nom_user'] par exemple), puis apres insertion j 'unset()' également les lambda_N correspondant
=> les insertions suivantes ne devraient pas se faire puisque les variables sont deja vidées...
- j'ai flanqué quelques booléens, du style:
Code :
- bool_sauv = 0;
- SI (champs_formulaire OK) ALORS bool_sauv = 1 FIN SI;
- SI (bool_sauv == 1) ALORS
- Insertion_enregistrement;
- bool_sauv = 0;
- FIN SI
|
=> 1 seule insertion devrait être possible avec ce genre de "controle"
note: j'utilise Mozilla (tlm devrait aussi ), et il me met une boite de confirmation qui illustre bien mon problème => ca donne en gros: votre page contient des données postées, si vous réenvoyez les données (avec F5 refresh), toutes les actions de la page (ici 'main.php') seront répétées... (on peut ensuite annuler ou valider)
MERCI D'AVANCE pour la parade
Message édité par lkolrn le 15-03-2004 à 17:03:20