phpbar.de logo

Mailinglisten-Archive

[php] PHP-Code aus Datenbank?

[php] PHP-Code aus Datenbank?

Ithamar Garbe php_(at)_phpcenter.de
Fri, 03 Aug 2001 23:29:49 +0200


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