Rechnung in Variable
Simsso
- php
Hallo,
wenn ich eine Variable habe, die den Inhalt $Rechnung = "5+2+6+12" hat, gibt es dann eine Möglichkeit, mit PHP das ausgerechnete Ergebnis anzeigen zu lassen. Ich schaffe es nämlich nicht, das ausrechnen zu lassen, da man ja nicht einfach "5" + "2" + ... machen kann.
LG
Hello,
wenn ich eine Variable habe, die den Inhalt $Rechnung = "5+2+6+12" hat, gibt es dann eine Möglichkeit, mit PHP das ausgerechnete Ergebnis anzeigen zu lassen. Ich schaffe es nämlich nicht, das ausrechnen zu lassen, da man ja nicht einfach "5" + "2" + ... machen kann.
Das beste wäre ein Parser für Rechenaufgaben. Da gibt es eine Klasse "rpn", die in verschiedenen Repositories in verschiedenen Versionen gepflegt wird.
http://www.phpclasses.org/package/4078-PHP-Evaluate-reverse-polish-notation-expressions.html
http://activedeveloper.info/rpn-calculator-in-php
http://pear.php.net/package/Math_RPN/docs/latest/math/_Math_RPN-1.1.2---Math---RPN.php.html
Die einfachste aber gefährlichste Lösung wäre eval()
http://www.php.net/manual/en/function.eval.php
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi,
danke für die schnelle Antwort!
Ich denke ich nehme mal die Technik, verstehe aber nicht, wie die einzubauen ist.
Die einfachste aber gefährlichste Lösung wäre eval()
http://www.php.net/manual/en/function.eval.php
<?php
$Ergebnis = eval($_POST["Aufgabe"]);
echo $Ergebnis;
?>
Kannst du schreiben, wie das genau geht?
Gruß
Hello,
Ich denke ich nehme mal die Technik, verstehe aber nicht, wie die einzubauen ist.
Mach lieber 'was vernünftiges und nimm eine von den RPM-Klassen. Es gibt auch noch mehr; Du musste nur mal selber danach suchen.
Die einfachste aber gefährlichste Lösung wäre eval()
http://www.php.net/manual/en/function.eval.php
<?php
$Ergebnis = eval($_POST["Aufgabe"]);
Good Night Server!
echo $Ergebnis;
?>
Kannst du schreiben, wie das genau geht?
Das übernehmen von Fremddaten in ein eval() darfst Du bitte nie-nie-nie-nie machen, ok?
Dann kannst Du deinen Server gleich einem Spammer schenken.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Genau das ist gefährlich:
» $Ergebnis = eval($_POST["Aufgabe"]);
> echo $Ergebnis;
Traue niemals externen Daten! Sieh Dir mal die von Tom verlinkten Ressourcen zum RPN-Parser an.
off:PP
Moin!
<?php
$Ergebnis = eval($_POST["Aufgabe"]);
echo $Ergebnis;
?>
Um Gottes Willen! Tu das nie! nie! nie!
<form method="post"
<input type="text" name="Aufgabe" value="system('less /etc/passwd')" />
<input type="submit" value="Mach, was due nicht sollst aber willst"/>
</form>
Durch derlei Schwachmatismus sind schon Webserver von "großen und angesehenen Firmen" gehackt worden.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Hello,
http://pear.php.net/package/Math_RPN/docs/latest/math/_Math_RPN-1.1.2---Math---RPN.php.html
diese hier habe ich mal selber ausprobiert und einige der darin noch enthaltenen Fehler beseitigt. Sie hat aber mMn immer noch kleine Probleme.
Zum Ausprobieren:
http://selfhtml.bitworks.de/scripts/calculate/
Quelltext unter:
http://selfhtml.bitworks.de/snippets/calculator/
Die einfachste aber gefährlichste Lösung wäre eval()
http://www.php.net/manual/en/function.eval.phpLiebe Grüße aus dem schönen Oberharz
Tom vom Berg
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg