[Résolu] Interprétation calcul (PHP) - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] Interprétation calcul (PHP) (/showthread.php?tid=7543) Pages :
1
2
|
[Résolu] Interprétation calcul (PHP) - Sôbi - 22-12-2015 Bonjour à tous et à toutes, Une nouvelle problématique se pose à moi. Ayant la flemme de faire des calculs ou de les programmer, je voudrais plutôt que se soit un ami qui s'y penche au lieu que se soit moi. Mais je bute tout de même. Je m'explique : J'ai des variable de bases par exemple : Code PHP :
Ensuite une requête va contacter la base de données, dans la colonne "requete_fight" où il y a la requête du style: Code PHP :
que je met dans une variable : Code PHP :
Du coup quand je fait un Code PHP :
Du coup, je me dis : C'est bien, mais je veux maintenant l'interprétation, donc je fais : Code PHP :
Quand je fait Code PHP :
Cool ! Maintenant je veux le résultat que je veux mettre dans une variable ... Mince ... Je cale ... Auriez vous une idée de comment je peux faire ? Ou une idée pour faire autrement ? Je vous remercie d'avance pour votre aide Cdlt, Sôsô. RE: Interprétation calcul (PHP) - Xenos - 22-12-2015 Salut, wow, donc il y a du code PHP (une formule) qui est stocké dans le SGBD (MySQL? osef en fait), que PHP va récupérer puis exécuter?! Outre les énormes problèmes d'injection et de sécurité, je ne suis pas sûr que ce genre d'archi soit fiable et pratique sur le long terme... Le SGBD renvoie la chaine de caractère "$A + $B * $C". $fight contient alors la chaine string "$A + $B * $C". "\$test = \"$fight\";" vaut donc $test = "$A + $B * $C"; On l'eval(), donc PHP exécute $test = "$A + $B * $C"; donc $test vaut "10 + 0 * 10" Deux solutions: soit tu supprimes les quotes de l'éval, qui devient donc "\$test = $fight;" et qui sera évalué à $test = $A + $B * $C; donc à $test = 10 + 0 * 10, soit tu ré-évale le résultat de $test Mais franchement, cela sent le foin comme archi... :\ RE: Interprétation calcul (PHP) - Polou - 23-12-2015 Bonsoir, Je me permets de rajouter que supprimer les quotes ne changera pas. Code PHP :
Si tu fais Code PHP :
RE: Interprétation calcul (PHP) - Sôbi - 23-12-2015 (22-12-2015, 11:52 PM)Xenos a écrit : Outre les énormes problèmes d'injection et de sécurité, je ne suis pas sûr que ce JE suis tout à fait d'accord avec toi ! Ceci n'est pas DU TOUT sur le long terme. En effet, c'est juste temporaire, le temps qu'il trouve la bonne formule (23-12-2015, 12:05 AM)Polou a écrit : Bonsoir, Je vais tenter vos idées Merci en tout cas, je me retournerais vers vous si ca marche RE: Interprétation calcul (PHP) - Sôbi - 23-12-2015 (23-12-2015, 12:05 AM)Polou a écrit : La ça fonctionne mais maintenant, j'ai le typage de la réponse avec, exemple : Citation :float(0.5)ou encore Citation :int(10) Je vais tout de même pas couper ca ? xD RE: Interprétation calcul (PHP) - Polou - 23-12-2015 Ben c'est le var_dump qui te renvoie en plus le type de la reponse (http://us2.php.net/manual/fr/function.var-dump.php). Fais un Code PHP :
RE: Interprétation calcul (PHP) - Sôbi - 23-12-2015 (23-12-2015, 12:32 AM)Polou a écrit : Ben c'est le var_dump qui te renvoie en plus le type de la reponse (http://us2.php.net/manual/fr/function.var-dump.php). Pfff ! J'suis bête ! Je devais tout de même être pas mal fatigué hier ! x') Pour comprendre donc, le fait de sortir la variable des guillemets va vraiment lui permettre d'interpréter le résultat ... Merci beaucoup en tout cas ! RE: [Résolu] Interprétation calcul (PHP) - Xenos - 23-12-2015 Oui, Polou, syntaxe error car tu as perdu l'antislash dans la bataille: c'est eval( "\$test = $fight;" ); que j'ai proposé (sans antislash, $test sera remplacé par sa valeur dans l'eval, et donnera un null = 10 + 0 * 10) Quand tu fais un eval, le mieux est de créer une variable intermédiaire contenant le code à evaluer, puis d'évaluer cette variable. Cela permet d'afficher le code ou de le faire parser par PHP pour le comprendre:
Test: http://tests.reinom.com/php/eval-token.php (forcément moins lisible que si XDebug était utilisé!) RE: [Résolu] Interprétation calcul (PHP) - Ter Rowan - 24-12-2015 hello, quelques pensées : dans une majorité des cas, ça pue cette architecture effectivement, cependant si tu es dans un système où des formules entre en jeu mais on ne connait pas à priori la formule, il faut bien stocker cette formule, entrée par un utilisateur, dans la bdd (quitte à faire tous les contrôles qui vont bien) sinon xenos, pour les vardump et compagnie, si tu veux avoir un retour plus clair, mais <pre></pre> autour, ça affiche la hiérarchie(enfin je crois) RE: [Résolu] Interprétation calcul (PHP) - Akira777 - 24-12-2015 (24-12-2015, 10:43 AM)Ter Rowan a écrit : hello, quelques pensées : Rien à voir, mais sache que si tu actives l'extension XDebug (souvent activé en dev) les var_dump sont automatiquement formatés et colorisés. |