IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] empecher le multi-postage de formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut [Sécurité] empecher le multi-postage de formulaire
    Bonjour, savez-vous comment faire pour qu'un formulaire soit validé une fois seulement ? Je rencontre souvent dans ma base des doublons qui sont dus a des enrgistrement multiple. Je pense que c'est surement lié au fait que le visiteur puisse laisser le doigt appuyer sur la touche de validation du formulaire.

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Montre nous ton code....

  3. #3
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Quand tu envoie le formulaire, tu insere un champ hidden avec une valeur random que tu stoque en session.
    Quand tu recois le formulaire du compare avec ta valeur en session :
    si c'est égal alors tu traite le formulaire et tu effaces la valeur en session
    si c'est différent (ou que la valeur n'existe pas) alors tu rejetes (ignore ou message d'erreur)

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut
    voici ce que je mets en début de page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php 
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "frm_galerie")) {
      $insertSQL = sprintf("INSERT INTO galerie_sous_categorie (ID_categorie, sous_categorie) VALUES (%s, %s)",
                           GetSQLValueString($_POST['ID_categorie'], "int"),
                           GetSQLValueString($_POST['sous_categorie'], "text"));
     
      mysql_select_db($database_image, $image);
      $Result1 = mysql_query($insertSQL, $image) or die(mysql_error());
    }?>
    et voici le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="frm_galerie" id="frm_galerie" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
     
    <input name="sous_categorie" type="text" id="sous_categorie" />
    <input type="submit" name="Submit" value="ok" />
    <input type="hidden" name="MM_insert" value="frm_galerie">
    </form>
    Merci

  5. #5
    Membre expérimenté Avatar de hunter
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 208
    Par défaut
    est-ce que tu reste sur la même page ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut
    oui je reste sur la même page

  7. #7
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Attention, si il font un reload après avoir envoyé des données, ils vont encore en rajouter vu que c'est sur la même page...

  8. #8
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    J'aime bien parler dans le vent

  9. #9
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Citation Envoyé par Mr N.
    J'aime bien parler dans le vent
    LOL....

  10. #10
    Membre expérimenté Avatar de hunter
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 208
    Par défaut
    alor pour évité ça tu peux faire avec un autre fichier puis tu redirige l'utilisateur (le plus simple)

    ou tu fais ce qu'a dit Mr N.

    ps : les formulaires comme tu as fais sont arrant tu prese 5 fois sur F5 et c'est la me***

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut
    Pas du tout Mr N je refléchi encore comment le mettre en place. Ton idée est très interressante.

  12. #12
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Je travaille sur un système de bug tracking. Or un utilisateur a eu sa touche [enter] qui est restée coincé. Du coup IE n'a pas arrêté de soumettre le formulaire => des milliers de bugs d'un coup d'un seul dans la base

Discussions similaires

  1. Empecher la "multi-execution" d'un programme
    Par Somato dans le forum Débuter
    Réponses: 1
    Dernier message: 27/11/2008, 16h24
  2. [C#] Empecher la fermeture d'un formulaire
    Par seito dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/04/2006, 16h33
  3. Javascript : Empecher la validation d'un formulaire
    Par otb82 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/01/2006, 09h46
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo