JeuWeb - Crée ton jeu par navigateur
[réglé] Problème avec eval() - 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églé] Problème avec eval() (/showthread.php?tid=1777)

Pages : 1 2


RE: Problème avec eval() - Seals - 19-09-2007

Pour moi eval() est sensé faire des calcules, j'ai du mal comprendre :/

regarde :
http://jvfr.free.fr/seagle.php

avec ce simple code :
Code PHP :
<?php
if (isset($_POST['calc'])) {


if(
eregi('[a-z]',str_replace(' ','',$_POST['calc']))){

header('location: seagle.php?get=Erreur');

}
else {



eval(
$expr = "\$var = " . $_POST['calc'] . ";");
header('location: seagle.php?get='.$var.'&calc='.$_POST['calc'].'');


}
}
else {
?>
T'es un génie, quelle interrêt d'ouvrir cette page sans faire de calcule ?
<?php
}

on peu faire des calcules genre (5*5) + (2*(6-2)) sans problèmes,
mais dès qu'il y a une parenthèse en trop ou en moins, il y a une erreur.

(appart ça pour l'affichage du calcule le sign + n'apparait pas vu que c'est un flotan, mais ça je verrais après, ça pose pas de problèmes)


RE: Problème avec eval() - Roworll - 19-09-2007

et avec un truc de ce genre :
Code PHP :
<?php
if (isset($_POST['calc'])) {
if(
eregi('[a-z]',str_replace(' ','',$_POST['calc']))){
header('location: seagle.php?get=Erreur');
} else {
//Initialisation de la variable $var avec une valeur bidon
$var='rien';
//Execution de l'Eval avec dissimulation de l'erreur
@eval($expr = "\$var = " . $_POST['calc'] . ";");
if(
$var=='rien'){
//La variable de résultat est toujours à la valeur par défaut
// L'expression évaluée contient dont une erreur
echo "Hey, boulet, t'as fait une faute dans ta formule...";
} else {
header('location: seagle.php?get='.$var.'&calc='.$_POST['calc'].'');
}
}
} else {
echo
"T'es un génie, quelle intérêt d'ouvrir cette page sans faire de calculs ?";
}
?>



RE: Problème avec eval() - Seals - 19-09-2007

Génial ^^

ça fonctionne, apparement j'avais mal utilisé @eval quand je l'avais essayé ..

Bref, problème reglé, encors merci Wink