|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
bonjour tout le monde,
j'ai dans ma page index.php un formulaire avec un champs file et un bouton submit. quand on clique sur le bouton, une page traitement.php traite le fichier uploadé. En fait j'ai deux questions : - je souhaite empêcher l'utilisateur après avoir choisi un fichier de cliquer deux fois ou plus sur le bouton submit, une seule fois suffise. Alors soit une page d'attente soit une désactivation de la page ou quoi que se soit. Je suis preneur à toutes vos propositions mais j'aimerai bien éviter javascript au cas où l'utilisateur la désactive - je souhaite que la page d'attente si c'est ce que vous préférez se lance juste après le clique car si je l'introduit dans traitement.php, elle ne sera affichée qu'après l'upload du fichier, ce qui laisse un temps à l'utilisateur à cliquer une dizaine de fois (plantage du serveur assuré) mon message est un peu lent mais je crois qu'il est assez compréhensible je vous remercie tous d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 959 ![]() |
Hello ,
a part le javascript ..... idem pour une barre de progression y en a une en libre mais c est du javacript.... |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
le fait d'empêcher l'envoi d'un formulaire plus qu'une fois est quelque chose de très essentiel dans bcp de domaines comme les banques, les site d'achats sur Internet... et même les sites les plus basiques
Alors ne me dis pas que ces sites se basent sur quelque chose qui peut être désactivé en une seconde par un client (je parle de javascript)!! il y a sûrement d'autres solutions! je reste convaincu qu'on peut faire des choses avec les sessions, mais pour moi il reste encore des zones d'ombre en php que je maîtrise pas trop, alors je vais tester et creuser de cet coté. En attendant si quelqu’un a une idée quelconque, surtout qu'il n'hésite pas |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() ![]() Inscription : novembre 2004 Messages : 735 ![]() |
Bonjour,
A mon avis la meilleur solution est la page d'attente. Ce n'est pas non plus la meilleure car rien n'empèche de faire précédent ou F5. Il faut coupler cette méthode avec un genre de fil d'attente des actions par utilisateurs au niveau du php. Cette partie requierant bien entendu l'tulisation des sessions. Mais les sessions se basent également sur un élément modifiable/supprimable facilement : un vulgaire cookie Après, il faut compte également avec le bon comportement de l'interanute.
__________________
Pierre 1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune. 2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers 3. Un code rapide c'est bien, un code maintenable c'est mieux ... Why was the font tag an orphan ? Because it didn't have a font-family. |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Emmanuel ThierryIngénieur systèmes et réseaux Inscription : décembre 2003 Messages : 216 ![]() |
Tu peux t'assurer qu'il ne poste pas 2 fois le même formulaire en placant une id unique en champ hidden dans le formulaire, c'est une première protection, mais contournable.
La seconde est de stocker l'IP et le Via Forwarding (me souvient plus exactement du nom) pour t'assurer qu'un même pc ne poste pas 2 fois de suite... |
|
|
00
|
|
|
#6 | ||||
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
je vous remercie vraiment pour vos idées, mais de la jusqu'à les mettre en place, c'est une autre histoire (en tout cas pour moi
bon j'ai de la motivation, je suis bien partant sur l'idée d'une page d'attente alors soit je parte sur un principe de Code :
la deuxieme solution que j'aimerai bien mettre en place est de creer une page wait.php et comme ca mon code sera plutot de cette forme Code :
franchement je m'en fou de la methode que j'utiliserai selement il faut que ca fonctionne |
||||
|
|
00
|
|
|
#7 | |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Citation:
Malgré tout, j'aime bien ce langage et je pense que ta demande est faisable. Mais pas forcément simple. |
|
|
|
00
|
|
|
#8 | ||
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
Citation:
en fait, je suis entrain de raffiner mon problème et je vais vous dire où est ce que j'en suis: je crois que je vais quand meme utiliser javascript : j'ajoute cette ligne sur le bouton submit Code :
onClick="this.form.submit(); this.disabled=true; this.value='Patientez...'"
Ils me restent les petits malins : je peux tester que javascript est activé sinon erreur. mais parce qu'il y a tjs un mais, si jamais l'internaute telecharge la page chez lui, il supprime la ligne dessus du code source de la page, et il active javascript, dans ce cas je suis mort... reste à trouver une solution pour ça aussi FCYPBA avait dit : Citation:
|
||
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Emmanuel ThierryIngénieur systèmes et réseaux Inscription : décembre 2003 Messages : 216 ![]() |
Toute solution en js est à bannir car contournable, les protections se font côté serveur.
Tu peux faire ce que tu veux côté client, il restera toujours la possibilité à ceux qui s'y connaissent d'envoyer directement les informations au serveur sans passer par leur navigateur... |
|
|
00
|
|
|
#10 | ||
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
je suis tout à fait d'accord. En fait j'ai une idee, au lieu qu'à partir de la page principale je lance traitement.php, bein je lance plutot attente.php et c'est dans cette derniere que j'affiche le message d'attente et je lance traitement.php
j'espere que je me suis fait comprendre! en gros, dans traitement.php je fais ca: Code :
à part header, comment lancer une page php à partir d'une autre sans cliquer sur quoi que se soit |
||
|
|
00
|
|
|
#11 | ||
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
c bon je l'ai trouvé : nouvelle format de mon attente.php
Code :
|
||
|
|
00
|
|
|
#12 |
|
Membre confirmé
![]() Emmanuel ThierryIngénieur systèmes et réseaux Inscription : décembre 2003 Messages : 216 ![]() |
Je t'ai déjà donné une solution incontournable utilisant les IP, mais bon, vu que tu n'as pas l'air de vouloir l'utiliser...
|
|
|
00
|
|
|
#13 | |
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
Citation:
Autre chose, je prend tous les messages en consideration et je vous en remercie tous d'ailleur, mais parfois ce n'est pas qu'ils ne sont pas interessants mais que je ne sais pas mettre la stratégie proposée en place |
|
|
|
00
|
|
|
#14 |
|
Membre confirmé
![]() Emmanuel ThierryIngénieur systèmes et réseaux Inscription : décembre 2003 Messages : 216 ![]() |
bah si c'est juste pour empécher l'arrêt du script, tu utilises
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com