Bloquer bouton

Bloquer bouton - PHP - Programmation

Marsh Posté le 11-12-2004 à 16:24:33    

Salut c'est encore moi !! *vois tout le monde souffler*
 
 
J'explique mon petit probleme :
 
J'ai un formulaire avec un bouton d'envoie , tout marche tres bien , sauf si je reclique sur le bouton une seconde fois pendant l'envoi de mon formulaire ... là sa corromp ma base sql en lui envoyant des information bidon ,  
 
J'aimerais savoir si on peut bloquer un bouton d'envoie , ou comment trouver une parade , pour qu'apres qu'il est cliquer sur le bouton d'envoie , il soit obliger d'attendre la fin du chargement et que donc il ne puisse pas cliquer en attendant.
 
 
Merci !!
 

Reply

Marsh Posté le 11-12-2004 à 16:24:33   

Reply

Marsh Posté le 11-12-2004 à 17:04:21    

tu peux ajouter une information de temps dans ta table mysql, avant de faire l'insertion du regarde le timestamp de la derniere insertion pour cet utilisateur et tu inseres seulement si il s'est écoulé un temps suffisant entre l'heure actuel et le timestamp de la table. Ok c'est barbare mais je ne suis pas sûr qu'il existe une solution 'propre'. si quelqu'un a une autre idee....

Reply

Marsh Posté le 11-12-2004 à 18:09:53    

Effectivement ce n'est pas bete , je vais essayer ça en attendant de voir si il y a mieu.

Reply

Marsh Posté le 11-12-2004 à 19:26:36    

Il y a moyen d'être plus propre et un peu plus déterministe en jouant p.e. avec un cookie ou la session...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 11-12-2004 à 19:55:32    

tonbouttton.hide = true
ou un truc du genre en javascript


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 11-12-2004 à 19:57:44    

document.hop.submit.style.visibility='hidden'
tiré du code source de hfr ;)


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 12-12-2004 à 02:23:57    

Ok merci a vous tous vous etes super !!! je vais essayer tout vos truc !!

Reply

Marsh Posté le 12-12-2004 à 04:33:14    

pas normal --> quand tu clique sur le bouton, normalement il execute la page pointée par le ACTION du formulaire (la meme ou une autre) et ne dois pas te laisser le formulaire visible --> ou alors ton script est vachement long ce qui implique un pb) et si il reclique une nouvelle fois, c'est les nouvelles données qui sont prises en compte (soit un nouvel ajout avec INSERT soit une modif avec UPDATE)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-12-2004 à 15:01:34    

Euh ... bha oui , le formulaire n'est plus visible , mais si il reclique pendant l'envoie alors qu'il me copier le fichier sa me renvoyer le fichier une seconde fois , et sa me fausser tout mon ordre de ma base sql. Mais apperement sa ne le fait plus bizzare je capte pas pourquoi ...

Reply

Marsh Posté le 12-12-2004 à 17:44:41    

c'est normal que ca fasse ca.
Pour le contrer soit tu ajoute une sorte d'antiflood (pas le droit de faire plusieur upload dans la même minute) soit tu cache le bouton une fois que t'as cliqué dessus .


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 12-12-2004 à 17:44:41   

Reply

Marsh Posté le 12-12-2004 à 20:52:17    

Citation :

pas le droit de faire plusieur upload dans la même minute


Ca reste fort barbare, comme on l'a dit, et assez approximatif. Tu empêcheras sans doute la double soumission accidentelle du formulaire, mais pas celle faite volontairement.
 

Citation :

tu cache le bouton une fois que t'as cliqué dessus .


Idem.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-12-2004 à 21:59:12    

Euh ok , mais je fais comment alors ??
 
Mais c'est bizzare cela ne me le fait plus maintenant j'ai beau cliquer comme un barbabre sa enregistre mon entrée comme si de rien été , d'un coté tant mieu mais bon je comprend pas trop

Reply

Marsh Posté le 13-12-2004 à 10:43:48    

sircam a écrit :

Citation :

pas le droit de faire plusieur upload dans la même minute


Ca reste fort barbare, comme on l'a dit, et assez approximatif. Tu empêcheras sans doute la double soumission accidentelle du formulaire, mais pas celle faite volontairement.
 

Citation :

tu cache le bouton une fois que t'as cliqué dessus .


Idem.


Ben euh de toute façon appart si chaque personne n'a le droit d'uploader qu'une seule et unique fois tu pourras pas l'empecher.
Alors qu'en faisant une sorte d'antiflood qui dure 60sec tu empeche un autre upload dans la même minute. En cachant le bouton pareil, pas de bouton pas de soumission, pas de soumission pas d'upload, pas d'upload ... pas d'upload.
Aprés il est vrai que toutes les méthodes faite en javascript peuvent être cassées donc moi je ferais les 2 (antiflood & cacher le bouton)


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 13-12-2004 à 14:31:02    

Ok , le temporisateur me plait plus ,  mais je ne sais pas comment on fait c'est avec quel commande ? vous pouvez me montrer un exemple ?
 
Merci

Reply

Marsh Posté le 14-12-2004 à 13:30:39    

ben le plus commun est dans une base données mais c'est pas adapté a ta situation je pense.
Tu as combien de personne susceptible d'uploader en meme temps ?

Reply

Marsh Posté le 14-12-2004 à 13:51:44    

Une seule , mais je voudrai éviter qu'elle clique plusieurs fois

Reply

Marsh Posté le 14-12-2004 à 20:50:35    

un simple hide sur le bouton devrais suffir alors


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 14-12-2004 à 23:33:26    

fFluFf a écrit :

un simple hide sur le bouton devrais suffir alors


 
 
un simple hide ne suffit pas, c'est une solution "de première ligne" rien de plus (et rien de moins, pour ne pas encore être taxé d'anti jscript primaire :D)

Reply

Marsh Posté le 15-12-2004 à 10:55:34    

oui mais bon faut voir aussi qu'il n'y a qu'une seule personne qui peut uploader et faut voir aussi quel est sa confience en lui.
 
Si la seule personne qui peut uploader ces lui même et qu'il cherche un moyen de lui éviter de cliquer 2 fois ca suffit.
Aprés si une seule personne peut uploader et que la page est protégé par un mot de passe ca doit suffir emplement.
 
C'est sur que si tu n'as pas confience en celui qui vas uploader, il te faut le blinder le script et la oui passer par un «antiflood»


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 15-12-2004 à 14:09:17    

Salut,
 
Ce n'est pas une question de non confiance exactement , c'est que je prépare des scripts pour faciliter le net a des personnes qui ne connaissent presque rien et je ne voudrai pas que pour x raison , le mec clique deux fois et fausse toute la base , parceque apres il va devoir me rapeller et puis meme , le truc est sencé ne pas avoir de probleme.
 
 
Merci :-)

Reply

Marsh Posté le 15-12-2004 à 14:10:49    

s'il clique 2 fois à toi de vérifier derrière si les données sont cohérentes avant de faire l'insertion dans la base, non?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 15-12-2004 à 15:07:14    

ben vu que ce script s'adresse a des non initiés le simple hide devrais suffir je vois mal un mec qui sais pas surfer des activer le javascript intentionnelement et cliquer plusieurs fois...


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 15-12-2004 à 18:14:14    

Faut tout prévoir , je l'ai fais essayer a mon pere , il ma plomber la base justement parceque le chargement de son truc etait trop lent alors il a recliqué dessus pour "voir" ... mais maintenant je vous l'avez dejà dit je n'ai plus ce probleme on peut cliquez plein de fois sa n'enregistre que le truc de base ... tant mieux ... comment sa ce fait ? aucune idée.

Reply

Marsh Posté le 15-12-2004 à 20:34:38    

c'est quoi ta clé primaire ?


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 16-12-2004 à 04:52:49    

Je n'en ai mis aucune en primaire , enfin il me semble pas parceque lorsque sa planté mes champs avez bien des doublons. Je vais tenter de le faire planter voir en m'acharnant comme une brute.

Reply

Marsh Posté le 16-12-2004 à 10:45:16    

Salut,
IF (bouton deja cliqué ) THEN %>  
<input type="submit" value="Envoyer" name="Envoyer" disabled >  
<% ELSE  %>
<input type="submit" value="Envoyer" name="Envoyer" >
<% END IF%>
mais je sais pas comment verifier la condition : "bouton deja cliqué "

Reply

Marsh Posté le 16-12-2004 à 15:35:19    

le problème c'est que tu ne peux le savoir que soit aprés qu'il est cliqué et dans la page action du form ou en javascript.


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 16-12-2004 à 18:56:59    

Apperement en ayant mis mon champ "nom" (base sql) en primaire , sa a l'air d'être bon vu qu'il ne veux plus deux fois le meme nom , enfin j'ai testé vite fait sa avait l'air bon , c'est logique ou alors coup de bol et sa va replanter ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed