Ausführen von PHP Code aus Datenbannk

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

  • Ausführen von PHP Code aus Datenbannk

    Ich möchte PHP Code aus einer Datenbank auslesen und diesen dann ausführen lassen.

    In der Datenbank steht sowas wie:
    <p class="bla">BlaBLa</p><p class="time"><?php echo date("d.m.y"); ?></p>

    Das lese ich dann aus und schreibe es in die Variable $ausgabe rein.
    Bisher funktioniert auch alles, doch jetzt kommt es.

    Ich mache dann folgendes:
    echo eval($ausgabe);

    Doch dies produziert nur folgende Fehlermeldung:
    Parse error: parse error, unexpected '<' in D:\xampp\htdocs\klasse8a\home\rightmenu.php(7) : eval()'d code on line 1

    Kann mir da jemand weiterhelfen?
    MfG,
    MrBona

  • #2
    RTFM http://de.php.net/manual/de/function.eval.php

    Kommentar


    • #3
      Salut

      eval() versucht den Code, den es aus str erhält als PHP auszuführen.
      Zeichen wie <,> etc sollten daher per escape entwertet werden.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Du meinst die Sachen, die in der Datenbank stehen, oder? Also /<p/> ... ?
        MfG,
        MrBona

        Kommentar


        • #5
          Original geschrieben von MrBona
          Du meinst die Sachen, die in der Datenbank stehen, oder? Also /<p/> ... ?
          Du weißt übrigens, dass die Funktion sofort einen PHP-Block öffnet? d.h. wenn du HTML-Code außerhalb eines PHP-Blocks machen willst, muss davor noch ein "?>"

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Au Leute, lest doch das Manual. Dort ist es erklärt. Es muss ein ausführbarer String sein und keine PHP Datei. Das mit dem "Entwerten" eek: ist totaler Unfug.

            So ist es richtig:

            PHP-Code:
            $str '<p class="bla">BlaBLa</p><p class="time">'.date('d.m.y').'</p>'// Kommt aus der DB
            eval("\$string = '$str';"); // hier werten wir aus
            echo $string// und hier zeigen wir es an 
            Zuletzt geändert von S.Oliver; 01.01.2005, 04:16.

            Kommentar


            • #7
              Du brauchst einen Regex, um die PHP-Blöcke aus dem Text zu extrahieren und diese dann mit eval() auszuführen.

              Überleg dir aber gut, ob das ganze Weise ist. Die Performance geht mit eval() in den Keller, und jemand, der Zugriff auf die mySQL-Datenbank erhält, kann automatisch auch PHP-Code ausführen lassen.

              Kommentar


              • #8
                Danke für die Antworten...
                Ich weiß jetzt auf jeden Fall (dank S. Oliver) wie ich es machen muss.
                MfG,
                MrBona

                Kommentar


                • #9
                  Original geschrieben von MrBona
                  Danke für die Antworten...
                  Ich weiß jetzt auf jeden Fall (dank S. Oliver) wie ich es machen muss.
                  Grundätzlich ja - aber in der DB enthaltener PHP-Code wird nicht ausgeführt, sondern im Klartext in den HTML-Output geschrieben. Das muß dir klar sein.

                  Kommentar


                  • #10
                    Also in der DB darf nur das stehen:

                    PHP-Code:
                    <class="bla">BlaBLa</p><class="time">'.date('d.m.y').'</p
                    Hab ich vergessen, dazu zu schreiben.

                    Kommentar

                    Lädt...
                    X