Bonjour à tous,
Depuis maintenant presque un ans je suis sur un projet de jeu vidéo par navigateur. Aujourd'hui j'étais en train de crée un système de coffre de clan mais j'ai rencontré un problème que je n'arrive vraiment pas à surmonter.
En effet mon script est sensée trier les valeurs qui ne sont pas correcte, tout fonctionne mais voilà je rafraîchis ma page j'ai la traditionnelle message qui demande si je veux re envoyer le formulaire et là tout est deposer une nouvelle fois dans le coffre même si le joueur n'a pas les ressources.
Voilà du coup j'aimerai savoir si je pouvais contourné ce problème ou peut-être que cela viens d'une erreur dans mon code mais alors je ne la vois vraiment pas
Ici le code de traitement des données envoyer par le form: http://pastebin.com/68K1KKGF
La page entière (Même si je doute de l'utilité de ce code pour trouver le probléme: http://pastebin.com/DMRQJTzn
Je pense que tu devrais faire un rafraîchissement force avec la fonction header pour que l'utilisateur ne puisse pas re soumettre lui-même le formulaire et se créer des ressources
J'ai survolé ton code sur mon téléphone donc je te dis peut-être nimp, si c'est le cas désolé
J'ai pas regardé le code, mais si l'utilisateur peut ajouter des items qu'il n'a pas dans le coffre simplement en soumettant une requête, c'est qu'il te manque une étape de vérification.
Tu dois impérativement vérifier que la requête est valide, donc à minima regarder que l'utilisateur possède les items avant de les mettre dans le coffre (et rejeter la requête si ce n'est pas le cas).
Pour le problème du rafraîchissement de page (simplement pour éviter le message ennuyant - ça ne te dispense pas de vérifier que l'utilisateur possède bien les items au préalable), ça se fait en général avec une redirection (l'idée, c'est de ne pas rester sur une page POST).
Justement c'est ce que je ne comprend pas , j'ai une etape de vérification qui vérifie que les ressources transmises dans le coffre sont >= 0 <= au total des ressources du joueur et que le chiffre est bien un chiffre (Et par la même entier) et pourtant mon programme accepte des truc du genre -100)
Clairement y'a un problème avec ta vérification, mais sans le code c'est difficile à dire.
Ben il y'est en faite . Franchement ma vérification je pense qu'elle tiens la route après je peux faire des erreurs mais j'ai beau cherché je trouve vraiment pas.
Que je suis con.
Du coup pour la verif, tu utilise des OU quand tu veux des ET :
if (is_int($_POST["pins"]) || $_POST["pins"] >= 0 || $_POST["pins"] <= $resource["gold"])
Ici, si $_POST["pins"] est un entier, mais qu'il est inférieur à 0, ou qu'il est supérieur à $resource["gold"], ta condition passera quand même.
En français, ta condition donne « Si pins est un entier ou qu'il est >= à 0 ou qu'il est <= à gold », alors que tu veux « Si pins est un entier et qu'il est >= à 0 et qu'il est <= à gold ».
OHHHH je dois vraiment être fatigué vraiment une erreur de débutant je suis VRAIMENT désolé de vous avoir fait perdre votre temps avec ça ... Merci beaucoup