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 une resoumission du formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Eviter une resoumission du formulaire
    Bonjour,

    <p>J'ai sur une page plusieurs lien vers des sites externes. Quand le membre clique sur le bouton inscription, je fais une validation que le bouton a été cliquer ensuite je fais un update sur une bd mysql et ouvre une nouvelle fenêtre vers un lien externe. Le pb est que si le client fait un refresh, un update de la bd va être refait.</p>

    Merci.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Suite à l'enregistrement en bdd tu peux passer par un header pour ré afficher ta page.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci. Je vais tester.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Ca fonctionne mais ce n'est pas ce que je veux car j'ai déjà une redirection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    if (isset($_POST['Submit']))
     {
    $url=$_POST['url_concours'];
    $mois=date("m");
    $id=($_POST['pid_concours']);
    $idc=($_POST['id_concours']);
    $type=$_POST['type_concours'];
    $login=$_POST['login'];
    $url=$_POST['url_concours'];
     
     
     
     
    If($type=='Unique')
    {
     
    mysql_query("INSERT INTO perso_back(pid_concours,rpseudo,dateparticipation)(SELECT * from perso WHERE pid_concours='$id')");
    mysql_query("Update perso_back  SET  dateparticipation=DATE_ADD(now(),interval 0 day) WHERE pid_concours='$id' Limit 1");
    mysql_query("Update perso SET  compteur=2 WHERE pid_concours='$id'");
    }
     
     
    if ($type=="Journalier")
    {
    mysql_query("UPDATE perso SET dateparticipation=DATE_ADD(dateparticipation,INTERVAL 1 day) WHERE pid_concours='$id'") or die(mysql_error());
    //mysql_query("UPDATE perso SET compteur=0 WHERE pid_concours='$id'") or die(mysql_error());
    }
    if($type=="Hebdomadaire")
    mysql_query("UPDATE perso SET dateparticipation=DATE_ADD(CURDATE(), INTERVAL 7 day) WHERE pid_concours='$id'") or die(mysql_error());
     
    if($type=="Mensuel") 
    {
    	if($mois=='04' || $mois=='06' || $mois=='09' || $mois=='11')
    	{
    		mysql_query("UPDATE perso SET dateparticipation=DATE_ADD(CURDATE(), INTERVAL 30 day)WHERE pid_concours='$id'") or die(mysql_error());
    	}
    	if($mois=='01' || $mois=='03' || $mois=='05' || $mois=='07' || $mois=='08' || $mois=='09' || $mois=='10' || $mois=='12')
        {
    	mysql_query("UPDATE perso SET dateparticipation=DATE_ADD(CURDATE(), INTERVAL 31 day)WHERE pid_concours='$id'") or die(mysql_error());
        }
    	if($mois=='02')
    	{
    	mysql_query("UPDATE perso SET dateparticipation=DATE_ADD(CURDATE(), INTERVAL 28 day)WHERE pid_concours='$id'") or die(mysql_error());
    	}
    }
     
    //Redirection vers un lien externe
    echo "<SCRIPT LANGUAGE=Javascript>
    window.open('$url','_blank')// ouverture du lien dans une autre fenetre
     </SCRIPT>";
     
     
    }

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Fais la redirection vers une page qui ouvre ta pop-up.

    L'autre solution est d'utiliser une session pour marquer si l'INSERT a déjà été fait ou non.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [Formulaire] eviter une revalidation
    Par eleve36 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/10/2005, 11h29
  2. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  3. [DB2] Eviter une cascade infini dans un trigger
    Par Fatah93 dans le forum DB2
    Réponses: 2
    Dernier message: 25/04/2005, 14h23
  4. Masquer une partie du formulaire
    Par Neuromancien2 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/01/2005, 14h23
  5. Réponses: 2
    Dernier message: 21/06/2004, 15h55

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