Carsten: natürlich funktioniert eval(); was sonst?

Beitrag lesen

Hi Michael!

Mir wurde geraten, "eval" zu nutzen, jedoch bringt er Fehler,

welche ?

er scheint z.B. so etwas wie "eval('print "hallo"')" nicht zu können...

doch kann er, hier müsste es z.b.:  
    eval('print "hallo;"');
heissen, evtenuell auch mal: eval("print "ich bin eine $zahl die ausgewertet wird";");
Im Gegensatz zu JavaScript haben einfache und doppelte Anführungszeichen eine
unterschiedliche Bedeutung.

Bei Datenbanken wird auch gerne stripslashes(); bzw, addslashes(); vergessen, zu wenig, zu oft
oder in asymetrischer Anzahl verwendet. (Dazu kommen noch die 'smartslashes' die ab und an
mal welche reinbauen oder wegnehmen.)

Schreibe deinen String, den du eval(); uieren möchtest am besten in eine Variable und gib die
'testhalber' mit
    echo nl2br(htmlentities($VariableFuerEval));
aus.

Da muss dann gültiger php-Code stehen. Inclusive aller Semikolons und alle "strings "richtig" ge-slash-t".

Welche Wege bleiben mir?

Der weg mit eval(); scheint mir der richtige.

Wenn du nur wenige einfache Funktionen einbauen willst, kannst du dir natürlich auch selber was
stricken, z.B. so:
    $html_seite=seite_aus_daten_bank_holen();
    $html_seite=str_replace("<!-- DATUM -->",date("d.m.Y, g:i:s"),$html_seite);
    $html_seite=str_replace("<!-- IP -->",getenv("REMOTE_ADDR"),$html_seite);
    /* ... vielleicht noch ein paar sinvolle sachen :-) ... */
    echo $html_seite;
setzt überall wo <!-- DATUM --> im Quelltext steht das aktuelle Datum ein, und überall wo
<!-- IP --> steht die aktuelle IP des Besuchers.

Gruss,
Carsten