thesilencer5
27-03-2004, 15:11
Hallo,
ich habe ein Eingabefeld in das der User z.B. 1+5*3 eingibt. Wie bringe ich php dazu, das ergebnis anzuzeigen? Das ganze soll auch bei sachen wie 13+((8/3)+3)-9 o.Ä. funktionieren.....
Original geschrieben von thesilencer5
ich habe ein Eingabefeld in das der User z.B. 1+5*3 eingibt.
wenn ich als böser user da jetzt aber nicht 4711 * 08/15 eingebe, sondern z.b. unlink("dateiaufdeinemserver"), hast du mit eval sehr schnell ein problem ...
wohl war. :D
aber das lässt sich ja schnell mit ner regex oder so ausschließen.
klar - man muss sich der problematik nur erst mal grundsätzlich bewusst sein; deshalb mein hinweis.
thesilencer5
28-03-2004, 09:54
Ich mache das so, dass die eingabe nur ausgewertet wird wenn es eine reine rechenformel ist. Sobald was anderes als +-*/ und Zahlen kommt wird es nicht verarbeitet.
Allerdings habe ich noch ein problem, das ergebnis in eine Variable zu legen. Das ganze wird immer sofort ausgegeben.
$eingabe = "1+1"
$aa = "echo ".$eingabe.";"
$ausgabe = eval($aa);
Ich bräuchte lediglich das Ergebnis in $ausgabe um es später mit echo $ausgabe; anzuzeigen.
Coragon Rivito
28-03-2004, 12:27
wenn du echo eingabe machst is das klar ..
probier mal return ;)
probier mal statt echo ne variablenzuweisung!
(manschmal frag ich mich wirklich, ob ihr überhaupt wisst, was ihr macht.