Empecher une soumission multiple de forumlaire - PHP - Programmation
Marsh Posté le 09-05-2003 à 13:32:27
Fais une page intermédiaire pour l'insertion dans la base.
Ensuite tu n'as qu'à faire un redirect avec un header HTML sur la liste et tu n'as plus de problème.
Marsh Posté le 09-05-2003 à 13:33:24
passe les une par une
Code :
|
Marsh Posté le 09-05-2003 à 13:34:11
redrat a écrit : J'ai crée un formulaire d'ajout de liens http dans une base. |
Pourquoi IE ? qu'est que le navigateur a a foutre la dedans ?
Tu peux tres bien essayer de verifier le repost via une variable globale, ou faire un test sur ta table pour eviter de rentrer 2 fois la meme valeur....
Marsh Posté le 09-05-2003 à 13:35:22
MagicBuzz a écrit : Fais une page intermédiaire pour l'insertion dans la base. |
C'est vrai que tu peux faire comme cela en effet.
Mais une page intermediare, c pas tres propre, surtout si le projet prend un certain volume
Marsh Posté le 09-05-2003 à 13:40:11
@Magic buzz : je vais opter pour ta solution, merci
@simogeo : unset ($email, $titre, $adresse, $description); est équivalent a un unset pour chaque variable.
@samuelp : ie n'a rien a voir la dedans c'est juste que naviguateur internet c'est un peu plus chiant à écrire
Marsh Posté le 09-05-2003 à 13:42:10
redrat a écrit : |
je ne savais pas, merci
Marsh Posté le 09-05-2003 à 14:13:22
Comment modifier la lign suivante pour que la redirection se fasse automatiquement au bout de 3 seconds ?
header("Location: liens.php" );
Marsh Posté le 09-05-2003 à 14:14:19
TAIST
Chais pas, le forum ici écrit ça :
<meta http-equiv="Refresh" content="0;url=forum2.php3?post=36455&cat=10&page=1&cache=cache&interface=&config=&p=&sondage=&owntopic=&subcat=#bas" />
Quand on poste un topic.
Marsh Posté le 09-05-2003 à 14:27:45
J'ai essayé
header("http-equiv='Refresh' content='3;url=liens.php'" );
mais ca passe pas
Marsh Posté le 09-05-2003 à 14:39:11
encore merci
avec
echo "<meta http-equiv='Refresh' content='3;url=liens.php' />";
ca passe
Marsh Posté le 09-05-2003 à 14:54:55
redrat a écrit : J'ai essayé |
header("Location: liens.php" );
sinon je plussoie samuelp, c'est pas propre la page intermédiaire et tu auras le même problème avec des back probablement... Le mieux étant vraiment de vérifier si c'est déjà dans la DB ou pas ou de foutre un tag en session pour l'empecher de le reposter.
Marsh Posté le 09-05-2003 à 15:01:54
J'ai une seule page qui affiche et traite le forumulaire
Par contre j'ai du utiliser une deuxième page pour afficher le message "Lien bien inséré" et faire la redirection vers liens.php.
De toute manière, il y a un circuit de validation des liens soumis par les utilisateurs donc.
je vais quand meme ajouter la vérification d'existence ou non dans la base.
Marsh Posté le 09-05-2003 à 21:36:14
en javascript y a une fonction replace qui fait comme location mais qui ne mets pas la première page dans l'historique donc le back ne ramène pas vers la première page
ça permet d'éviter les pbs de back
Marsh Posté le 09-05-2003 à 13:29:31
J'ai crée un formulaire d'ajout de liens http dans une base.
Après avoir validé le forumlaire, le lien est inséré dans la base mysql.
Vu que j'utilise une seule page php pour affichier le forumlaire (lien.php) et traiter l'insertion (lien.php?action=add), si je fait un refresh de la page après validation du forumlaire, IE demande si je veux reposter le formulaire.
D'ou possibilté d'insérer plusieurs fois le meme lien.
Comment éviter que IE me redemande si je re-soummettre le formuliare ?
j'ai essayé de faire des unset sur les variables du formulaire mais sans succès
unset ($email, $titre, $adresse, $description);
ou encore
unset ($_POST['email'], $_POST['$titre'], $_POST['$adresse'], $_POST['$description']);
ne marchent pas.
Merci pour votre aide