gestion de plusieurs appels simultané à la page

Répondre
nygma
le 15/05/2004 à 16:27
nygma
Salut !

bon, j'ai un problème, mais ça vous vous en doutez...

J'ai un jeu style jdr en php. quand le joueur fait une attaque, ça exécute un code php qui se connecte à une BDD, vérifie pas mal de trucs, dont le nombre d'attaques restant.

tout va bien, sauf que parfois, (merci free), l'exécution du code est suffisamment lente pour que l'utilisateur réattaque une ou plusieurs fois avant que l'éxécution de la première attaque soit finie.

Du coup, en cliquant comme un bourrin, on peut attaquer 10 fois alors qu'on a que 2 attaques, par exemple.

LA BDD n'a pas le temps de mettre à jour le nbre d'attaques entre 2 attaques quasi simultanées.

j'ai d'abord essayé de mettre un verrou dans ma BDD. au début du code. quand le verrou est activé, si le joueur fait deux attaques trop vite, le deuxième passage le bloque avec un die(message).

seul hic, parfois, sur plusieurs click simultanés, la BDD a pu eu le temps de mettre le verrou à jour. du coup, ça passe quand même.

là, j'essaye vie une variable de session qui me sert de verrou, mais ça merde + qu'avec la BDD.

si je fais ça proprement : 1 click, j'attends 1/2 sec, et je reclick, ça marche. mais si je click comme un bourrin, alors je fais 10 attaques d'un coup....

ça m'énerve... ça fait bien 4 mois que je traine ce bug, et je sais toujours pas quoi faire...

Quelqu'un a déjà eu ce genre de problème ?
Cart
le 15/05/2004 à 19:40
Cart
tu n'as qu'a blocker le bouton sumbit ( de ton form je presume) quand le gars click desus

avec du javascript ca se gere

<input type="submit" onclick=" jesaisplusquoiblockcebotuondemerde" >

recherche ca :)
Meeper
le 15/05/2004 à 23:18
Meeper
Salut
j'ai trouvé ceci en esperant que ca t'aide

Entre <head> et </head>
<SCRIPT LANGUAGE="JavaScript">
<!--
var unique=0;
function envoi()
{
if (unique == 0)

{
unique++;
return true;
}

else

{
alert("Envoi en cours...!");
return false;
}

}
//-->
</SCRIPT>

et pour le formulaire
<FORM  METHOD=POST ACTION="ta_page.php" NAME="Formulaire" OnSubmit="return envoi()">
nygma
le 15/05/2004 à 23:30
nygma
C'est pas un bouton.

c'est toute une série de liens.

le joueur clique sur l'image du perso à latter, et ça relance le code php de la même page avec les options ki vont bien, style :
mydila.php?action=attaque&x=4&Y=45

c'est juste un lien.

je crois pas que le java marche pour ça...

(mais je connais pas le java.... donc...)
zebden
le 17/05/2004 à 10:24
zebden
javascript deja , secondo si ca marche pour tout il suffit de mettre l'evenement pour le lien mais au lieu de submit puisque c'est pas un formulaire , onClick sera plus approprié.
Sinon methode coté serveur/ php , il existe une fonction pause qui te sera peut etre utile.
zebdinou pour les intimes / Blog : http://www.zebden.fr
nygma
le 17/05/2004 à 21:42
nygma
ok, je vais tenter le javascript.
juste une question de newbie en java :
je peux mettre à jour une variable de session php $_SESSION['verrou'] dans un code javascript ?

si oui comment ?

la fonction pause, ça doit etre 'sleep'. je l'utilise actuellement en test, avec une boucle do while, pour mettre en attente le code tant que le verrou n'est pas désactivé. mais bon, ça merdouille un poil quand même.
zebden
le 17/05/2004 à 22:55
zebden
en javascript tu peux donner une valeur de variables php a une variable javascript oui...
Mais pas inversement puisque le php est executé coté serveur et non client.

var varJavascript = $_SESSION['verrou'];
zebdinou pour les intimes / Blog : http://www.zebden.fr
nygma
le 17/05/2004 à 23:22
nygma
donc du coup, à chaque click, je peux tenter de récuperer le verrou php.... et vérifier que le click est autorisé...

comment tu mets le 'onclick' sur un lien ? et tu mets le code où ?
zebden
le 18/05/2004 à 09:10
zebden
si le click appele une autre page ou refrsh , oui tu peux utiliser le php.
<a href="" onClick="">Lien</a> ^^
zebdinou pour les intimes / Blog : http://www.zebden.fr
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours