Mailinglisten-Archive |
Carsten Bleyer wrote: > Am Freitag, 3. August 2001 23:02 schrieben Sie: > > > eval("?>$string<?"); > > Kannst du mir das bitte mal erklären? Ich hatte heute ein ähnliches > Problem, wobei ich dachte bei "?>" hört php auf, dann kam die Variable > (allerdibgs als "$variable") und dann gings weiter mit "<?". Eigentlich > lässt doch jetzt php die Finger von $variable, da sie ja in normalem > html steht, oder? In diesem Fall nicht. Stell dir vor, in der Variable $string steht der Text "<body><? echo 'test' ?></body>". Setze in Gedanken den Text aus der Variable oben ein: eval("?><body><? echo 'test' ?></body><?"); Und jetzt denkst du dir das ganze in den folgenden Code eingebaut: <? echo "codefetzen1"; function test() { echo "bla"; } echo "noch ein codefetzen"; ?> Und jetzt alles zusammen: <? echo "codefetzen1"; function test() { echo "bla"; } eval("?><body><? echo 'test' ?></body><?"); echo "noch ein codefetzen"; ?> Siehst du? In der Funktion eval() wird zuerst der normale PHP-Code "beendet", damit die HTML-Ausgabe funktioniert, dann wird der Code im eval() ausgeführt (also alles was zwischen <? und ?> ist), dann wird der PHP-Code wieder begonnen und dein normales Skript fährt fort... Hoffe, es war einigermassen verständlich, achte auf jeden Fall auf die <? und ?> Gruss, Ithamar Garbe
php::bar PHP Wiki - Listenarchive