Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeichenkette in einen Befehl umwandeln

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeichenkette in einen Befehl umwandeln

    Hi,

    wenn ich z.B.

    PHP-Code:
    $erg ;
    echo 
    $erg
    schreibe, kommt 4 raus !

    Ich will nun, das wenn ich in ein formular 2 + 2 schreibe,

    und abschicke, PHP diesen String als "befehl" aufnimmt und dann ausrechnet!



    mfg

  • #2
    http://de2.php.net/eval

    Kommentar


    • #3
      eval() macht zwar genau das was du möchtest aber du solltest es trotzdem NIEMALS auf Daten aus einem Formular anwenden, da der Benutzer sonst jede beliebige Befehlsfolge ausführen kann, nicht nur Berechnungen.

      Kommentar


      • #4
        Für so einen Rechner solltest du die Eingabe (falls sie in einem Feld geschehen soll) lieber parsen. So wie z.B. hier -> http://www.tuxradar.com/practicalphp/21/5/6

        (Das Beispiel ist schon etwas älter, man findet bestimmt auch was aktuelleres.)

        Kommentar


        • #5
          Habe dafür auch mal einen Parser geschrieben: http://hallophp.de/tutorials/32-term-mit-php-parsen .
          Damit solltest du eigentlich etwas anfangen können.

          Gruß

          Kommentar


          • #6
            Warum kann man nicht per Regex oder anders prüfen, ob nur die 4 Rechenzeichen, Ziffern 0-9 und runde Klammern im String sind und dann eval nutzen? Könnte da jemand Schadcode auf Hexbasis einschleusen? eval ('echo ' . '237823719287382731827312837127391238237' . ';') ist ja unproblematisch, auch wenn die Zahlen einen Wurm repräsentieren.

            Kommentar

            Lädt...
            X