Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2294 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Page qui ne se charge qu'une fois !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Page qui ne se charge qu'une fois !

n°1193625
foxbond
Posté le 06-09-2005 à 21:49:07  profilanswer
 

Bonsoir à tous,
Un gros problème se présente à moi, je vais essayer de l'expliquer ..
Une page compte.php contient un lien vers la page valid.php, qui crédite l'user de 100 points SI l'user est contenu dans la table BANQUE (et donc utilisation d'un IF). Si l'user est crédité, son enregistrement dans BANQUE est supprimé.
Le problème est que certains users ayant une connexion très rapide cliquent plusieurs fois très rapidement sur le lien vers valid.php et se voient crédités de plusieurs centaines de points. Pourquoi ? Je n'en sais rien puisque l'enregistrement aurait du etre effacé.
Comment éviter alors cette méthode de triche ?
Merci infinniment !

mood
Publicité
Posté le 06-09-2005 à 21:49:07  profilanswer
 

n°1193685
sielfried
Posté le 06-09-2005 à 22:48:31  profilanswer
 

Ben je sais pas, dans le doute vire l'utilisateur de ta table banque avant de le créditer ?
 
Fait voir ton code quand même.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1193687
foxbond
Posté le 06-09-2005 à 22:57:43  profilanswer
 

C'est déjà le cas, l'utilisateur est viré avant le crédit .. :s
C'est pour ça que ça m'intrigue !
Le code :
 
$result5=mysql_query("SELECT argent FROM banque WHERE pseudo='$pseudo'" );
$nb_result5 = mysql_num_rows($result5);
if ($nb_result5>=1){
$result4=mysql_query("DELETE FROM banque WHERE pseudo='$pseudo'" );
$result6=mysql_query("UPDATE base SET argent=argent+100 WHERE pseudo='$pseudo'" ); }
 
Une idée ?

n°1193713
Profil sup​primé
Posté le 06-09-2005 à 23:59:33  answer
 

foxbond a écrit :

C'est déjà le cas, l'utilisateur est viré avant le crédit .. :s
C'est pour ça que ça m'intrigue !
Le code :
 
$result5=mysql_query("SELECT argent FROM banque WHERE pseudo='$pseudo'" );
$nb_result5 = mysql_num_rows($result5);
if ($nb_result5>=1){
$result4=mysql_query("DELETE FROM banque WHERE pseudo='$pseudo'" );
$result6=mysql_query("UPDATE base SET argent=argent+100 WHERE pseudo='$pseudo'" ); }
 
Une idée ?


vu le peu de code non, mais :
- si ton $pseudo contient des caractères spéciaux...toutes tes requetes plante, à moins que tu ne l'ai protégé avant
- utilise plutot des identifiants que du texte
- place un echo dans ton if pour savoir s'il y passe, ca s'appelle du debogage et c'est ce qu'on fait avant de poser des questions normalement
- ca peut provenir du code de compte.php qui crée un éventuel enregistrement dans la table banque pour ce pseudo  
 
 
 
 
 

n°1193759
foxbond
Posté le 07-09-2005 à 07:06:41  profilanswer
 

Pour les quatres tirets, non, cela n'est pas ça ..
Une autre idée, quelqu'un ? :(

n°1193760
Aquineas2
Damoiseau
Posté le 07-09-2005 à 07:10:11  profilanswer
 

tu peux peut etre creer une session/cookies au moment de l'update de la base de donnée, et vérifier, avant update, la présence ou non de la dite session/cookies...

n°1193765
foxbond
Posté le 07-09-2005 à 07:29:08  profilanswer
 

Je vais essayer ça .. ! Sinon, y'a t il un moyen pour qu'une meme page refuse de se chargée si elle a été visitée moins de 10 minutes avant ?

n°1193779
betsamee
Asterisk Zeperyl
Posté le 07-09-2005 à 07:57:10  profilanswer
 

ben enregistres l'ip du visiteur dans une table ainsi que l'heure des la connexion a cette page ,et fais les verifs en consequences

n°1193999
misterping​uin
Posté le 07-09-2005 à 13:03:23  profilanswer
 

betsamee a écrit :

ben enregistres l'ip du visiteur dans une table ainsi que l'heure des la connexion a cette page ,et fais les verifs en consequences


super le test, si tu tombes sur un proxy tu bloques donc tous les utilisateurs si un seul a vu la page ?

n°1194009
betsamee
Asterisk Zeperyl
Posté le 07-09-2005 à 13:21:49  profilanswer
 

misterpinguin a écrit :

super le test, si tu tombes sur un proxy tu bloques donc tous les utilisateurs si un seul a vu la page ?


 
 :sarcastic:

mood
Publicité
Posté le 07-09-2005 à 13:21:49  profilanswer
 

n°1194020
misterping​uin
Posté le 07-09-2005 à 13:28:55  profilanswer
 


c'est constructif comme réponse  [:mumu]  

n°1194045
betsamee
Asterisk Zeperyl
Posté le 07-09-2005 à 13:44:06  profilanswer
 

misterpinguin a écrit :

c'est constructif comme réponse  [:mumu]


bon je vais faire plus constructif:
 
bravo tu m'as brise en deux  
 
qu'as tu de constructif a proposer pour resoudre ce probleme?

n°1194433
misterping​uin
Posté le 07-09-2005 à 19:05:00  profilanswer
 

betsamee a écrit :

bon je vais faire plus constructif:
 
bravo tu m'as brise en deux  
 
qu'as tu de constructif a proposer pour resoudre ce probleme?


 
le but n'était pas de te "briser en deux" mais il faut éviter de donner des réponses dont tu ne connais pas la portée, et qui peuvent avoir des conséquences plus ou moins graves en programmation...
 
Et donc pour répondre à la question, il faut utiliser une page de redirection :
ton formulaire >> page de traitement >> page de résultat
 
qui empeche un multi-submit  
 
comme le fait ce forum...

n°1194434
foxbond
Posté le 07-09-2005 à 19:06:49  profilanswer
 

Et donc pour répondre à la question, il faut utiliser une page de redirection :  
ton formulaire >> page de traitement >> page de résultat  
 
C'est à dire ? Je suis désolé de ne pas avoir très bien compris, mais qu'est-ce que je dois changer exactement ? :$

n°1194440
misterping​uin
Posté le 07-09-2005 à 19:10:54  profilanswer
 

foxbond a écrit :

Et donc pour répondre à la question, il faut utiliser une page de redirection :  
ton formulaire >> page de traitement >> page de résultat  
 
C'est à dire ? Je suis désolé de ne pas avoir très bien compris, mais qu'est-ce que je dois changer exactement ? :$


 
tu utilises 3 fichiers :
 
1/ celui avec ton formulaire
2/ celui qui reçoit les données à traiter et les traite
3/ celui sur lequel tu arrives apres traitement
 
tu peux aussi en complément utiliser un petit bout de code en JS pour désactiver le bouton d'envoi de mémoire qqchose comme OnClick="this.disable";

n°1194452
foxbond
Posté le 07-09-2005 à 19:38:38  profilanswer
 

Merci :)

n°1194597
Djebel1
Nul professionnel
Posté le 08-09-2005 à 05:39:38  profilanswer
 

misterpinguin a écrit :

tu utilises 3 fichiers :
 
1/ celui avec ton formulaire
2/ celui qui reçoit les données à traiter et les traite
3/ celui sur lequel tu arrives apres traitement


Excuse moi pourrais-tu préciser comment ce système empêche une multi-soumission du formulaire ? Je n'ai pas très bien compris :(

n°1194629
sielfried
Posté le 08-09-2005 à 08:45:40  profilanswer
 

Djebel1 a écrit :

Excuse moi pourrais-tu préciser comment ce système empêche une multi-soumission du formulaire ? Je n'ai pas très bien compris :(


 
La page 2 est redirigée (de façon transparente) vers la troisième, donc si t'essaies d'actualiser, ça actualise celle-ci et ça rebalance pas les données du form.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1201571
Djebel1
Nul professionnel
Posté le 17-09-2005 à 16:28:42  profilanswer
 

donc la page 3 c'est celle qui balance les données du form ? Comme ca si tu actualises la page 2, ca retraite les données simplement ? (ouais jsuis un peu con :p)

n°1201584
sielfried
Posté le 17-09-2005 à 16:43:30  profilanswer
 

Djebel1 a écrit :

donc la page 3 c'est celle qui balance les données du form ? Comme ca si tu actualises la page 2, ca retraite les données simplement ? (ouais jsuis un peu con :p)


 
Non.
 
La page 1 envoie les données à la page 2 via http (POST le plus souvent).
La page 2 enregistre les données dans la base et redirige de façon transparente vers la page 3.
La page 3 affiche (par exemple) un message pour confirmer que les données ont bien été enregistrées.
 
L'utilisateur ne voit pas le passage par la page 2 et ne peut donc pas l'actualiser.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1202757
Djebel1
Nul professionnel
Posté le 19-09-2005 à 19:57:03  profilanswer
 

merci bien :)
et ce qui fait que l'utilisateur ne voit pas la page 2, c'est parce que c'est immédiatement redirigé sur la page 3 ? Si le site rame à ce moment là, ca laissera pas la page 2 affichée un moment, laissant la possibilité de la refresh ?


Message édité par Djebel1 le 19-09-2005 à 20:10:08
n°1202761
betsamee
Asterisk Zeperyl
Posté le 19-09-2005 à 20:00:49  profilanswer
 

misterpinguin a écrit :

le but n'était pas de te "briser en deux" mais il faut éviter de donner des réponses dont tu ne connais pas la portée, et qui peuvent avoir des conséquences plus ou moins graves en programmation...


 
desole pour la reponse en retard (j'ai autre chose a foutre ne ce moment) mais a part peut etre en php je ne crois pas avoir grand chose a apprendre de toi en programmation. :lol:  
 
Ton arrogance ne te grandis pas
 
sur ce bonne soiree

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Page qui ne se charge qu'une fois !

 

Sujets relatifs
avoir et traiter le code source d'une pageStocker des fichier sur son serveur depuis un page php ou autre..
faire une pause dans une page webCopier par macro une page d'un userform
Changer une page HTML après un temps donnéLa page que vous tentez de voir contient des données POSTDATA ... ???
Récupérer sous Excel le contenu de la page HTML en cours de l'explorer[css] pb float/clear : comment bien isoler les parties de la page?
passage de parametre entre deux page htmlPage d'attente lors du chargement
Plus de sujets relatifs à : Page qui ne se charge qu'une fois !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR