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 :

rechargement page php- eviter l'execution d'un INSERT SQL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut rechargement page php- eviter l'execution d'un INSERT SQL
    Bonjour,

    je bloque un peu.

    J'ai une page A php contenant un formulaire, cela lance une page B consistant à insérer dans une base des données avec INSERT.
    Trés bien, mais je voudrais éviter que l'insertion se fasse quand je recharge la page

    merci d'avance

    Fab

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Bonjour,
    tu peux faire l'insertion, sans afficher la page, puis recharger ta page via la fonction header(url).
    Ainsi, cette nouvelle page ne recoit pas de données POST.

    Tu peux aussi definir une variable de session qui basculera des que l'insertion est faite.
    Ainsi dans ta page, tu testes cette variable, et execute ou non l'insertion.

    Z.

  3. #3
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Par défaut
    La solution du header est la plus répandu ,

    On recharge la page via un header('Location: url'); ce qui detruit des données en post, mais en cliquant sur page précédente tu revient sur la page contenant l'envoie des données en Post

    une technique plus rare consiste a envoyé en même temps que le formulaire , un champs cacher contenant un timestamp ( fonction time() en php ) de l'autre coté tu verifie que le timestamp recu est inferieur au temps actuel +x

    Cas concret tu autorise un delais de 1 min pour poster le form , de l'autre coté tu verifi que le time recu est égale a time()+60 (60 sec) si c bien le cas tu fait ton insert et tu redirige la page avec header, a ce moment la tu a moins de chance de reproduire l'INSERT meme si tu revien en arriere , a toi de verifier le temps max autorisé entre 2 insert pour un formulaire ...

    Tiens compte du fait que entre le moment ou tu poste , que la requette s'execute et que tu fasse un page precedente il peut se passer qu'une seconde ...

    c juste de la sécurité supplémentaire

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/02/2013, 10h21
  2. [Système] executer commande ssh dans une page php
    Par marielaure2805 dans le forum Langage
    Réponses: 2
    Dernier message: 19/10/2006, 10h05
  3. [Système] Executer une page PHP d'un autre site
    Par eraim dans le forum Langage
    Réponses: 3
    Dernier message: 05/09/2006, 12h23
  4. Recharger un bout d'une page php
    Par Aragorn_destroy dans le forum Langage
    Réponses: 3
    Dernier message: 03/06/2006, 15h51
  5. [SGBD] Executer mysqldump dans page php
    Par JCDC dans le forum Débuter
    Réponses: 1
    Dernier message: 15/09/2005, 14h43

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