[RESOLU] Problème de popup qui s'ouvre plusieurs fois

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème de popup qui s'ouvre plusieurs fois

Re: [RESOLU] Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 05 janv. 2017, 12:54

C'est tout bon merci beaucoup moogli pour votre aide !
Bonne année =)

Re: Problème de popup qui s'ouvre plusieurs fois

par moogli » 14 oct. 2016, 10:37

le header ? oui

le if c'est pour l'exemple

tu rentres dans le cas de la validation du formulaire, tu le traites et si tout va bien (pas d'erreur de données, pas d'erreur d'insertion) alors tu utilises le header, si bien entendu tu n'as rien affiché avant.


@+

Re: Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 13 oct. 2016, 16:09

et je le positionne a la fin de mon form ?

Re: Problème de popup qui s'ouvre plusieurs fois

par moogli » 13 oct. 2016, 15:10

ça doit pas être bien fait :)

si tu fais
<?php
if(!empty($_POST['le nom du champ submit'])) {
    // traitement du  formulaire
   header('Location: '+$_SERVER['PHP_SELF']);
}
cela ne peux pas boucler le header ne sera fait que si tu as cliqué sur le bouton submit.

cela fonction plutôt bien lorsque l'on a pas des submit du formulaire "intempestifs" ;)

@+

Re: Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 13 oct. 2016, 13:46

J'ai déja essayer mais ca ne fonctionne pas correctement ..
A chaque fois elle rafraichis la page tout le temps donc le site plante ..

Re: Problème de popup qui s'ouvre plusieurs fois

par moogli » 13 oct. 2016, 10:48

pour la redirection le premier exemple de la documentation de la fonction header fait le boulot.
donc avec tes données
<?php
header('Location: '+$_SERVER['PHP_SELF']);
@+

Re: Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 13 oct. 2016, 08:10

Bonjour,

Pardon je n'ai pas relu votre post d'avance excusez moi ..
Est ce que vous auriez un exemple a me donner ou me montrer s'il vous plait ?

J'utilise ceci et ça fonctionne bien :
echo '<script>setTimeout(function(){ window.location = "' . $_SERVER['PHP_SELF'] . '"; }, 5000);</script>';

Merci en tout cas pour votre aide moogli ..

Re: Problème de popup qui s'ouvre plusieurs fois

par moogli » 12 oct. 2016, 16:37

1/ => javascript vindiou :)
2/ soit vider $_POST soit header + Location (voir doc header) pour "changer" de page


@+

Re: Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 12 oct. 2016, 15:07

Oui d'accord mais dans mon code j'ai une liste déroulante ou il peux choisir sur quel application rejouer, mais il y a une phrase aussi qui récapitule sur qu'elle appli il va rejouer et la sans le onchange sa ne fonctionne plus ...

Quand je dis réinitialiser c'est vraiment repartir sur la même page, comme un F5 en gros ..

Re: Problème de popup qui s'ouvre plusieurs fois

par moogli » 12 oct. 2016, 13:03

oui il faut virer la soumission dans le onchange comme indiqué dans mon message précédent et le faire que sur le clic du bouton submit./

pour l'autre question cela dépend de ce que tu entends par réinitialiser ;)
si c'est mettre les valeurs par défaut et ne pas tenir compte des données dans $_POST, supprime ce qu'il y a dans le tableau ($_POST) après la validation complète et cela devrait faire l'affaire.

@+

Re: Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 12 oct. 2016, 10:07

Bonjour,

Vous aviez raison au niveau :
reste un problème qui fait que lorsque tu submit le formulaire avec le JS (sur le onchange) "valid" n'est pas pris en compte (vu que tu ne clic pas sur le bouton).
https://gist.github.com/anonymous/71367 ... 2ef3499732

bon par contre le selected j'espère que c'est temporaire parce que la quand tu changes la valeur ça submit et revient toujours au même endroit avec la même valeur ;)
le soucis est lorsque l'utilisateur saisie le mode de réémission, l'application, le type et la valeur avec les listes déroulantes ; il remplis le textarea avec un numéro.
Si il c'est tromper et change d'application l'enregistrement en base se fais automatiquement sans appuyer sur le bouton submit ..

Y'a t'il un moyen d'éviter ce problème ?

Cordialement

Re: Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 11 oct. 2016, 16:05

Oui c'est sur merci beaucoup pour vos conseils, je vais essayer de me pencher sur ce que vous me dites mais ne connaissant pas du tout ce langage, ca ne vas pas être très simple ...
J'avais une autre petite question a vous poser,
Est ce que vous savez comment je peux réinitialiser ma page après mon submit ? sans avoir un autre bouton reinitialiser mais le faire automatiquement.
Du genre lorsque la personne a saisie tout ce qu'elle voulais soumet a l'aide du bouton sauvegarder, un message l'alerte pour savoir si la réémission est bonne et par la suite j'aimerais que cette page ce réinitialise toute seule =/ ..

Re: Problème de popup qui s'ouvre plusieurs fois

par moogli » 11 oct. 2016, 15:08

le truc c'est que la soumission du formulaire sur le changement d'appli / abonne (é ?) fait que la condition ne peux fonctionner comme je le pensais vu que bouton submit n'est pas cliqué $_POST['valid'] n'existe pas.

si ce que tu souhaite c'est afficher un message lorsque les conditions sont réunie il faut le faire en JS pas besoin de recharger la page (sachant qu'il y a des champs en dessous c'est dommage de risquer d'insérer des chose en base ou d’exécuter un script sans que toutes les données soit la).
c'est pour cela que soit sur le cli du bouton soit sur onchange du select il faut informer l'utilisateur.

soit au submit tu affiches une demande de (url=http://www.w3schools.com/jsref/met_win_confirm.asp]confirmation [/url]
soit sur le onchange tu affiches un message si les conditions sont réunies.
Mais pas soumettre le formulaire c'est perturbant pour l'utilisateur et toi tu peux te retrouver dans un état non souhaité.

c'est pour cela que mon code ne fonctionne pas avec le ! parce que lorsque tu utilises de onchange sur select pour soumettre le formulaire les données ne sont pas complète.

Bref, si ça fonctionne tant mieux, par contre la solution javascript pour ce genre de chose c'est mieux, tu ne fait pas de retour serveur juste pour ça, la page clignote pas, l'utilisateur n'est pas perdu et tout va bien :)

@+

Re: Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 11 oct. 2016, 13:11

Le code que je vous avez donnez était le code source de la page, Voici mon vrai code php de ma page :

https://gist.github.com/anonymous/9138c ... 995d3e467f

Car je ne vois pas vraiment les modifications que vous avez apportez ...
Merci en tout cas de toute l'aide que vous m'apportez !

Re: Problème de popup qui s'ouvre plusieurs fois

par cahuet-200 » 11 oct. 2016, 13:06

Bonjour =) !
de ce que j'ai vu tu utilises les register globals ? ($FORMAT_MSG plutôt que $_POST['FORMAT_MSG']).
Ceci est une très mauvaise idée car ce comportement est supprimé de php (php 5.4) et n'est pas non plus la valeur par défaut de php depuis bien longtemps (php 5.3) http://php.net/manual/fr/ini.core.php#i ... er-globals
il est préférable d'utiliser les super globlales GET, POST ...
Elle sont déclarées tout au dessus de mon code comme ceci :

Code : Tout sélectionner

// Déclarations des variables $appli = $_POST['abonne']; $TYPE_MSG = $_POST['TYPE_MSG']; $FORMAT_MSG = $_POST['FORMAT_MSG']; $MODE_REEMIS = $_POST['MODE_REEMIS']; $ETAT_REEMIS = $_POST['ETAT_REEMIS']; $appli = $_POST['abonne']; $hl7_IMS_ABONNE = $_POST['hl7_IMS_ABONNE']; /* --------------------------------------------------- Condition pour le Mode de Réémission -----------------------------------------------*/ $MODE_REEMIS = $_POST['MODE_REEMIS']; $ETAT_REEMIS = $_POST['ETAT_REEMIS'];
reste un problème qui fait que lorsque tu submit le formulaire avec le JS (sur le onchange) "valid" n'est pas pris en compte (vu que tu ne clic pas sur le bouton).
https://gist.github.com/anonymous/71367 ... 2ef3499732
C'est à dire ? je ne comprend pas vraiment ...
bon par contre le selected j'espère que c'est temporaire parce que la quand tu changes la valeur ça submit et revient toujours au même endroit avec la même valeur ;)
A la base ce n'est pas que temporaire il fonctionne comme cela pour le moment ..
Car cela me prend bien la bonne valeur malgré que la personne change plusieurs fois d'avis ..
c'est pas simple de submit sur le changement d'une liste, si tu t'es gouré c'est pas top.
De plus l'avertissement devrait être fait en Js completement plutôt qu'en php.
utilise toujours l'event onchange + une fonction JS qui test si la même chose qu'en php et tu utilises une confirmation (avec ok / annuler ) plutôt que "même si tu t'es gouré c'est quand même partis :) ).
Je ne connais pas du tout Js a vrai dire j'ai déjà vue deux trois choses dessus mais je n'ai jamais oser allé plus loin de peur de me perdre et de foirer le code que j'ai fais ...