php Script aus datenbank ausführen?

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    php Script aus datenbank ausführen?

    moin,
    ich bin mir gerade ein kleines script am schreiben(so ne erweiterung für mein kleines CMS),
    ich will dass das script von erweiterung in der SQL DB gespeichert, und dann per echo ausgeführt wird,
    allerdings will php nicht so wie ich will, es wird das script nicht ausgeführt sondern steht einfach nur im quelltext,
    kann mir da jemand helfen?

    lg.
    das weiß ich ja, aber ich will keine externe files^^


    EDIT:
    egal, ich hab nen ordner expansions gemacht wo sich die ganzen scripte befinden, in der datenbank steht dann nur der name der datei^^

    lg.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gelöschter Benutzer“ ()

    und sobald nur 1 Syntax fehler auftritt kackt dein ganzes Script ab und du bekommst nur bedingt ne vernünftige Fehlermeldung.

    Nutze eval() für meine Template Engine und war schon oft am verzweifeln. Meine nächste wird nicht damit gelöst!
    zwischen eval und datei schreiben -> include ist aber wirklich kein unterschied mehr ;)
    Wenn ich mich recht erinnere (ist schon länger her), bekommste mit eval('?>' . $db_text . '<?php') das gleiche Ergebnis, wie mit einem Include. Wenns reiner PHP-Code ist, dann komplett ohne <?php und ?>.

    Dass das ganze nicht allzu sicher ist, ist die eine Sache, aber ich finde es auch nicht besonder Schick ...
    Meine Guestbook-Page sieht in der DB folgendermaßen aus:

    Quellcode

    1. <br/>
    2. [loadmodule]guestbook[/loadmodule]
    3. [call:guestbook]print_form_link()[/call]<br/><br/>
    4. [call:guestbook]print_all()[/call]<br/>
    5. [call:guestbook]print_form()[/call]


    In .../modules/ befindet sich eine guestbook.php, die wird mit [loadmodule]...[/loadmodule] included und eine Instanz in mein Modules-Array erstellt. (Egal, wo der Tag im Text steht):

    PHP-Quellcode

    1. function LoadModule($module) {
    2. global $Modules;
    3. include $module . '.php';
    4. $Modules[$module] = eval("return new {$module}();");
    5. }

    Mit [call:module]method[/call] werden dann Methoden vom Modul aufgerufen (mit eval):

    PHP-Quellcode

    1. function Call($module, $method) {
    2. global $Modules;
    3. return eval('return $Modules[' . $module . ']->' . $method . ';');
    4. }


    Damit nicht einfach User (Kommentare) das gleiche machen können hab ich 2 Methoden, die die BB-Codes parsen:
    1. render_posted (nur bb codes, smilies, etc.)
    2. render (wie render_posted + module engine + paar andere sachen)

    Edit: hab noch den Post noch etwas erweitert, musste vorhin kurz weg vom PC

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Mad Andy“ ()