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
A voir également:

3 réponses

freddy
 
Meme chose pour moi aussi !!
La réponse m'interesse aussi
0
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
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