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 :

Eviter la double insertion en rafraichissant la page


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de p0Kep0K
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 51
    Points
    51
    Par défaut Eviter la double insertion en rafraichissant la page
    Hello,

    J'aimerais savoir s'il existe un truc qui permet d'éviter d'ajouter une deuxième fois l'élément que l'on vient d'enregistrer en rafraîchissant la page.

    Je m'explique: j'ai un formulaire qui permet une insertion dans la DB, le traitement se fait sur cette même page. Si je rafraîchis cette dernière suivant l'insertion, un deuxième élément sera enregistré (et ainsi de suite) étant donné que les informations transmises sont encore présentes dans le navigateur!

    Comment éviter ça?
    Merci d'avance!

  2. #2
    Membre expérimenté Avatar de nebule
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 507
    Points : 1 464
    Points
    1 464
    Par défaut
    Citation Envoyé par p0Kep0K
    Hello,

    J'aimerais savoir s'il existe un truc qui permet d'éviter d'ajouter une deuxième fois l'élément que l'on vient d'enregistrer en rafraîchissant la page.

    Je m'explique: j'ai un formulaire qui permet une insertion dans la DB, le traitement se fait sur cette même page. Si je rafraîchis cette dernière suivant l'insertion, un deuxième élément sera enregistré (et ainsi de suite) étant donné que les informations transmises sont encore présentes dans le navigateur!

    Comment éviter ça?
    Merci d'avance!
    Tu peux effacer les variables transmisses une fois le formulaire enregistré (vider le cache et autre).

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Deja au niveaud e ta base....si tu as un champ unique une clé primaire et tu n'auras pas de doublons.....si c un id auto increment ta clé...tu peu faire un replace au lieu d'un insert....

    Voila c'est juste de ssuggestions....sinon au niveau php je sais pas comment on fait

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    Perso je ne fait jamais les traitements de formulaire sur la meme page ou j'affiche le résultat.

    j'ai une organisation comme celle ci:
    page.php
    page2.php
    traitements/page.php
    traitements/page2.php
    etc...

    et en faite si j'ai un formulaire sur page2.php alors je fait le traitement sur traitements/page2.php et je renvoie sur page2.php apres le traitement avec un header(location: '../page.php');

    u understand ?

    enfin je sais pas si c'est la meilleur solution.

  5. #5
    Membre du Club Avatar de p0Kep0K
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 51
    Points
    51
    Par défaut
    @ boo64
    Ca me paraît être un peu du bricolage, non?
    Mais merci pour la suggestion!

    @ maximenet
    Oui c'est de cette façon-là que je procède d'habitude mais il y a tellement peu de lignes que c'est pour cette raison que je préfère effectuer l'insertion dans la même page! C'est plus simple pour moi!

    @ nebule
    Voilà, je crois que c'est ça que je recherche!
    Je vais suivre cette voie-là!

    Merci à tous!

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    nebule çà m'interresserai que tu explique un peu ta méthode, à la rigueur çà pourrai peut être m'interresser

  7. #7
    Membre du Club Avatar de p0Kep0K
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 51
    Points
    51
    Par défaut
    Oui d'autant plus que je n'ai pas vraiment trouvé quelque chose de concret sur le net!...

  8. #8
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    moi, personellement, j'enregistre les données dans BD dans un script X, puis je redirige vers une page statique de confirmation Y.
    Comme ça, même si l'utilisateur rafraichit, il ne rafraichit que la page Y et ça n'insère pas de doublons dans la BD.
    Je trouve que c'est la solution la plus simple et la plus propre.
    Après, chacun ses goûts ...

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    enfin moi a une époque j'avais chercher une solution aussi et en gros partout on me disait de faire comme je t'ai dit plus haut

Discussions similaires

  1. rafraichissement de page
    Par xave dans le forum Langage
    Réponses: 16
    Dernier message: 29/12/2005, 10h46
  2. [MySQL] Problème double insertion dans BDD
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 34
    Dernier message: 28/12/2005, 00h09
  3. pb double insertion dans BDD
    Par oceane751 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/12/2005, 09h59
  4. Double insertion trigger
    Par Yanmeunier dans le forum Développement
    Réponses: 1
    Dernier message: 19/12/2005, 15h03
  5. Rafraichissement de page
    Par Wormus dans le forum Langage
    Réponses: 7
    Dernier message: 13/12/2005, 16h06

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