Cain
Arrivant (0)
Inactifs
Hors ligne
Messages: 968
|
|
« le: 12 Juin 2013 à 09:15:32 » |
|
Bon, http://royaumes.sistearth.com/index.php?topic=4842.0Ne pouvant le réouvrir, je repost ce bug. Etape 3 ou 4 je sais plus, choix entre un pnj et des levels. Je prends le pnj, je lag, je reclic sur le choix de l'étape et.... A nouveau cet écran me disant en gros que je suis un membre à l'essai. Rien n'a changé, chui chef et pas en essai, et a mon avis, tout mon clan a ce probleme.
|
|
|
|
Tohwi
Prince (175)
Seizon
Hors ligne
Messages: 1737
|
|
« Répondre #1 le: 12 Juin 2013 à 10:22:46 » |
|
Effectivement, j'étais sur le PNJ et je ne pouvais pas valider l'étape...
|
|
|
|
Mel
|
|
« Répondre #2 le: 12 Juin 2013 à 14:20:49 » |
|
...
J'ai regardé le code et dessuite, je n'ai plus envie de chercher à corriger le bug...
fichier joint: extrait de la page clan (la seule, l'unique). fichier de 1773 lignes
|
|
|
|
alania
Citoyenne modèle (67)
Inactifs
Hors ligne
Messages: 69
|
|
« Répondre #3 le: 12 Juin 2013 à 15:29:02 » |
|
c'est cette partie qui ne s'affiche pas, probablement une variable qui est mal initialisé else switch ($Mission["EtapeType$EtapeEnCours"]) { case 1: //PNJ { DisplayQueteClanTexte($Mission["EtapeType$EtapeEnCours"],$EtapeEnCours,$Clan["ClanID"],$Mission["Info1_$EtapeEnCours"]); $requete = "select EntiteNom,Px,Py,ZoneID from pnj where EntiteID = ".$Mission["Info1_$EtapeEnCours"]; $PNJ = fetch(query($requete)); $requete = "select Px,Py,ZoneID from pj left join pjclan on pjclan.PjID = pj.EntiteID where GradeID>0 and EntiteID = ".$_SESSION["PjID"]; $PJ = fetch(query($requete));
if($PNJ["Px"]==$PJ["Px"] && $PNJ["Py"]==$PJ["Py"] && $PNJ["ZoneID"]==$PJ["ZoneID"]) { $EtapeValidable = true; } else { echo "<br><br>Vous n'êtes pas au bon endroit pour donner la lettre qui vous a été confiée"; } break; }
Soit ca plante et il y a des logs, soit on entre pas dans cette condition, à cause de Mission ou EtapeEnCours mal initialisé. Il faudrait ajouter un default à la fin du switch avec un message d'erreur pour en être sure, et pourquoi pas afficher aussi les variables comme ça on pourrais te donner le résultat NB: le message ne dis pas qu'on est membre a l'essai, c'est juste le message standard : "Attention pour tout ce qui suit, les membres à l'essai du clan ne sont pas impliqués dans la quête!"
|
|
|
|
Tohwi
Prince (175)
Seizon
Hors ligne
Messages: 1737
|
|
« Répondre #4 le: 12 Juin 2013 à 17:02:19 » |
|
... Ce code oO Je soupçonne très fortement un problème d'accès concurrent à cet endroit du code (normal, aucun envoi POST n'est vérifié) : if($_POST["Choix"] == 1) $requete = "update quetedivine set EtapeType$EtapeEnCours = EtapeChoix1, Info1_$EtapeEnCours = InfoChoix1_1, Info2_$EtapeEnCours = InfoChoix1_2 where ClanID=".$Clan["ClanID"]; elseif($_POST["Choix"] == 2) $requete = "update quetedivine set EtapeType$EtapeEnCours = EtapeChoix2, Info1_$EtapeEnCours = InfoChoix2_1, Info2_$EtapeEnCours = InfoChoix2_2 where ClanID=".$Clan["ClanID"]; if($_POST["Choix"] == 1 || $_POST["Choix"] == 2) { query($requete); query("update quetedivine set EtapeChoix1 = 0, InfoChoix1_1 = 0, InfoChoix1_2 = 0, EtapeChoix2 = 0, InfoChoix2_1 = 0, InfoChoix2_2 = 0 where ClanID=".$Clan["ClanID"]); echo "Choix Effectué<br><br>"; }
Ex : - Joueur 1 valide choix 1 => EtapeType$EtapeEnCours = EtapeChoix1, Info1_$EtapeEnCours = InfoChoix1_1 = quelque chose de pertinent (première requête) => InfoChoix1_1 = 0 (deuxième requête) - Joueur 2, qui avait sa page ouverte avant que joueur ne valide, revalide choix 1 => EtapeType$EtapeEnCours = EtapeChoix1, Info1_$EtapeEnCours = InfoChoix1_1 = 0 = BUG (première requête) Pour résoudre le bug : vérifier que l'étape n'est pas déjà validée.
|
|
|
|
alania
Citoyenne modèle (67)
Inactifs
Hors ligne
Messages: 69
|
|
« Répondre #5 le: 13 Juin 2013 à 15:12:57 » |
|
D'après ce que je lis, c'est le dernier qui valide qui l'emporte, mais cela ne créer pas d’incohérence dans la base. (Mais le php n'est pas mon fort, je peux me tromper.) Il faudrait voire le contenu des variables pour savoir ou ca bug. avez vous acces aux logs, car je viens de remarquer que Cain devrait au moins voir ça, or s'il ne le voit pas c'est que le script s’arrête anormalement plus tot! if($Grade == $GRADE["chef"]) { echo "<br><br><h3>Abandonner la quête en cours :</h3>"; echo "Abandonner une quête peut apporter au clan le courroux de la divinité qui vous l'avait confiée. <br>Réfléchissez-y à deux fois!<br><br>"; ?> <form name="AbandonnerQuete" method="post" onSubmit="return cSubmit();"> <input class="bouton" type="submit" name="AbandonnerQuete" value="Abandonner la quête"> </form> <? }
et je pense qu'il manque un argument a la fonction DisplayQueteClanTexte pour le cas 1 : else switch ($Mission["EtapeType$EtapeEnCours"]) { case 1: //PNJ { DisplayQueteClanTexte($Mission["EtapeType$EtapeEnCours"],$EtapeEnCours,$Clan["ClanID"],$Mission["Info1_$EtapeEnCours"]);
en effet les autres appels ont plus d'arguments case 2: //Livre { DisplayQueteClanTexte($Mission["EtapeType$EtapeEnCours"],$EtapeEnCours,$Clan["ClanID"],$Mission["Info1_$EtapeEnCours"],$Mission["Info2_$EtapeEnCours"]);
|
|
|
|
Tohwi
Prince (175)
Seizon
Hors ligne
Messages: 1737
|
|
« Répondre #6 le: 13 Juin 2013 à 19:33:40 » |
|
D'après ce que je lis, c'est le dernier qui valide qui l'emporte, mais cela ne créer pas d’incohérence dans la base. (Mais le php n'est pas mon fort, je peux me tromper.)
Non non, comme je l'ai écrit plus en détail en dessus : - la première requête met à jour les infos en fonction des champs InfoChoixn_n - la deuxième requête met les champs InfoChoixn_n à 0 Du coup, relancer la même requête entraîne de mettre à jour les infos avec un champ InfoChoixn_n qui vaut maintenant 0. D'ailleurs il me semble que la dernière fois, le problème était que deux personnes avaient cliqué "en même temps".
|
|
|
|
alania
Citoyenne modèle (67)
Inactifs
Hors ligne
Messages: 69
|
|
« Répondre #7 le: 14 Juin 2013 à 12:27:01 » |
|
en effet tu as raison, je n'avais pas remarqué qu'il y avait ecrasement des donnes dans la base par le premier! il faut donc qu'un admin modifie la base pour qu'on puisse continuer et qu'il ajoute le test pour eviter que ca ne recommence
|
|
|
|
Mel
|
|
« Répondre #8 le: 14 Juin 2013 à 19:01:01 » |
|
Je suis en train de bosser dessus et plutot que de patcher de manière bourrine un code bancal, je recode le tout. Il doit me rester entre une et deux heure de boulot pour finir. Ca sera normalement pret ce WE.
Toutes les quêtes en cours seront annulées (mais vous gagnerez des PC fonction du nombre d'étapes qui auront été validées).
|
|
|
|
Lysithea
Citoyenne (7)
Inactifs
Hors ligne
Messages: 1113
|
|
« Répondre #9 le: 15 Juin 2013 à 11:03:28 » |
|
Du coup il y aura moyen de rajouter de nouvelles possibilités d'étape ?
|
|
|
|
Calypso
Invité
|
|
« Répondre #10 le: 15 Juin 2013 à 12:30:05 » |
|
Ohhh Mel je t'aime!!!
|
|
|
|
Mel
|
|
« Répondre #11 le: 15 Juin 2013 à 14:23:24 » |
|
Du coup il y aura moyen de rajouter de nouvelles possibilités d'étape ? ouais vous pouvez faire un post dans A&I
|
|
|
|
Tohwi
Prince (175)
Seizon
Hors ligne
Messages: 1737
|
|
« Répondre #12 le: 15 Juin 2013 à 14:47:48 » |
|
Toutes les quêtes en cours seront annulées (mais vous gagnerez des PC fonction du nombre d'étapes qui auront été validées).
On peut nous valider notre étape en cours alors, histoire de pas être floués de quelques PCs ? :p
|
|
|
|
Tagornis
Arrivant (0)
Inactifs
Hors ligne
Messages: 143
SSN
|
|
« Répondre #13 le: 15 Juin 2013 à 16:38:39 » |
|
C'est lié uniquement au quête de clan ou aussi au quête normale ?
|
|
|
|
Connavar
Citoyen (4)
Inactifs
Hors ligne
Messages: 546
|
|
« Répondre #14 le: 15 Juin 2013 à 22:30:15 » |
|
quete de clan
|
|
|
|
Mel
|
|
« Répondre #15 le: 17 Juin 2013 à 01:28:05 » |
|
Je suis en train de bosser dessus et plutot que de patcher de manière bourrine un code bancal, je recode le tout. Il doit me rester entre une et deux heure de boulot pour finir. Ca sera normalement pret ce WE.
Toutes les quêtes en cours seront annulées (mais vous gagnerez des PC fonction du nombre d'étapes qui auront été validées).
hé bien non... j'ai rien fait ce WE donc... le prochain
|
|
|
|
Tohwi
Prince (175)
Seizon
Hors ligne
Messages: 1737
|
|
« Répondre #16 le: 17 Juin 2013 à 23:41:11 » |
|
Possible de nous débloquer notre quête en attendant ?
|
|
|
|
Mel
|
|
« Répondre #17 le: 18 Juin 2013 à 10:12:44 » |
|
oué, j'ai "annulé" votre étape. Il faut la repasser. Vu que c'est la conaissance d'un savoir, ça ne devrait pas poser de problèmes, enfin, il me semble. Evitez de cliquer 40 fois pour la valider, c'tout
|
|
|
|
alania
Citoyenne modèle (67)
Inactifs
Hors ligne
Messages: 69
|
|
« Répondre #18 le: 18 Juin 2013 à 10:44:59 » |
|
merci
on se prend un malus de 2 etapes mais celle ci sera rapidement validé.
|
|
|
|
Cain
Arrivant (0)
Inactifs
Hors ligne
Messages: 968
|
|
« Répondre #19 le: 18 Juin 2013 à 11:31:28 » |
|
Merci ! Evitez de cliquer 40 fois pour la valider, c'tout Bon ok, j'arrete de prendre mon téléphone 3G en pleine foret
|
|
|
|
|