Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1928 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Empecher une soumission multiple de forumlaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Empecher une soumission multiple de forumlaire

n°388154
redrat
Posté le 09-05-2003 à 13:29:31  profilanswer
 

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

mood
Publicité
Posté le 09-05-2003 à 13:29:31  profilanswer
 

n°388160
MagicBuzz
Posté le 09-05-2003 à 13:32:27  profilanswer
 

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.


Message édité par MagicBuzz le 09-05-2003 à 13:33:25
n°388162
simogeo
j'ai jamais tué de chats, ...
Posté le 09-05-2003 à 13:33:24  profilanswer
 

passe les une par une  :o  

Code :
  1. unset ($email);
  2. unset ($titre);
  3. unset ($adresse);
  4. unset ($description);


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°388164
samuelp
Posté le 09-05-2003 à 13:34:11  profilanswer
 

redrat a écrit :

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


 
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....

n°388169
samuelp
Posté le 09-05-2003 à 13:35:22  profilanswer
 

MagicBuzz a écrit :

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.


 
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

n°388174
redrat
Posté le 09-05-2003 à 13:40:11  profilanswer
 

@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 :)

n°388176
simogeo
j'ai jamais tué de chats, ...
Posté le 09-05-2003 à 13:42:10  profilanswer
 

redrat a écrit :


@simogeo : unset ($email, $titre, $adresse, $description); est équivalent a un unset pour chaque variable.


 :)  je ne savais pas, merci


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°388240
redrat
Posté le 09-05-2003 à 14:13:22  profilanswer
 

Comment modifier la lign suivante pour que la redirection se fasse automatiquement au bout de 3 seconds ?
 
header("Location: liens.php" );

n°388242
MagicBuzz
Posté le 09-05-2003 à 14:14:19  profilanswer
 

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.


Message édité par MagicBuzz le 09-05-2003 à 14:15:50
n°388267
redrat
Posté le 09-05-2003 à 14:27:45  profilanswer
 

J'ai essayé  
header("http-equiv='Refresh' content='3;url=liens.php'" );
mais ca passe pas

mood
Publicité
Posté le 09-05-2003 à 14:27:45  profilanswer
 

n°388286
redrat
Posté le 09-05-2003 à 14:39:11  profilanswer
 

encore merci
avec  
echo "<meta http-equiv='Refresh' content='3;url=liens.php' />";
ca passe

n°388308
zion
Plop
Posté le 09-05-2003 à 14:54:55  profilanswer
 

redrat a écrit :

J'ai essayé  
header("http-equiv='Refresh' content='3;url=liens.php'" );
mais ca passe pas


 
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.


---------------
Informaticien.be - Lancez des défis à vos amis
n°388312
redrat
Posté le 09-05-2003 à 15:01:54  profilanswer
 

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.

n°388753
ratibus
Posté le 09-05-2003 à 21:36:14  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Empecher une soumission multiple de forumlaire

 

Sujets relatifs
Empecher l'enregistrement d'une image[JS]Affichage arbre multiple.
[PHP MySQL] Clef primaire multiple ?(prob. réglé + infos législation)Empêcher l'activation du Presse-Papier ?
[Javascript ou autre ..] ya til un moyen d'empecher l'impression .....[VB] Empêcher les saisie de données déjà existantes
Crypter les fichiers class pour empecher le reverse enginering?Empêcher les téléchargements d'images sur un site
Empêcher le linkage d'image [htaccess][C] Erreur 'multiple definition' à la compiliation !!?
Plus de sujets relatifs à : Empecher une soumission multiple de forumlaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR