Forum Doku Wiki Blog

Forumsarchiv 2002, November
PHP-Code aus Datenbank auslesen und ausführen?

archivierte Beiträge lesen

  1. (PHP) PHP-Code aus Datenbank auslesen und ausführen? von Mike, 01. 11. 2002, 14:57

PHP-Code aus Datenbank auslesen und ausführen?

Der folgende Beitrag wurde am 01. 11. 2002, 14:57 Uhr von Mike veröffentlicht.

Hi,

ich hab in einem früheren Posting hier im Forum mitbekommen, dass der Befehl eval() dazu dienen soll, PHP-Code auszuführen (wenn ich ihn z. B. aus einer Datenbank auslese).

Ich hab das jetzt mal testweise gemacht.

// Abfrage
$abfrage = "SELECT content FROM netradio WHERE pageid = '$pageid'";
$ergebnis = mysql_query($abfrage);
while ($row = mysql_fetch_array ($ergebnis))
 {
eval ("\$row[content] = \"$row[content]\";");
echo $row[content];
}

Es klappt aber nicht... in $row[content] steht der HTML/PHP-Code, er wird zwar angezeigt aber der PHP-Teil wurde nicht geparst, sondern wird im Klartext angezeigt.

Kann da jemand weiterhelfen?

PHP-Code aus Datenbank auslesen und ausführen?

Der folgende Beitrag wurde am 01. 11. 2002, 15:28 Uhr von brand veröffentlicht.

Hi!

> eval ("\$row[content] = \"$row[content]\";");

eval führt den PHP-Code aus, der ihm als Parameter übergeben wird

Warum die Zuweisung $row[content]=$row[content] ?
Warum die Anführungszeichen?

angenommen in $row[content] = "echo 'hallo';"
so funktioniert eval($row[content]);

willst du nun auch HTML-Code drin haben, so beachte:
$row[content]="?> <b> <? echo 'hallo'; ?> </b> <?";
dass du vor und nach den HTML-Teilen den PHP-Bereich schliessen/öffnen musst

wiederum mit eval($row[content]) auszuführen

mfg
brand

PHP-Code aus Datenbank auslesen und ausführen?

Der folgende Beitrag wurde am 01. 11. 2002, 16:11 Uhr von Mike veröffentlicht.

> willst du nun auch HTML-Code drin haben, so beachte:
> $row[content]="?> <b> <? echo 'hallo'; ?> </b> <?";
> dass du vor und nach den HTML-Teilen den PHP-Bereich schliessen/öffnen musst

Hmm, irgendwie ist mir das nicht ganz klar. Zum Beispiel hat Die Variable $row[content] folgenden Inhalt:

<html>
<head></head>
<body>
<h1>Hier kommt PHP-Code</h1>
<?
echo "Das hier ist PHP-Code";
?>
</body>
</html>

Und ich habe das also nun alles in einer Datenbank stehen und frage es ab... und somit befindet sich das in der Variable $row[content]. Wenn ich diese jetzt mit echo anzeigen lasse, wird der PHP-Code auch angezeigt.

Also versuche ich mit eval den Code vorher durch den PHP-Parser zu schicken. eval($row[content]) müsste da doch funktionieren?

Naja, das tut es aber nicht...

Grüsse
Mike

PHP-Code aus Datenbank auslesen und ausführen?

Der folgende Beitrag wurde am 01. 11. 2002, 19:24 Uhr von brand veröffentlicht.

Hi!


> Also versuche ich mit eval den Code vorher durch den PHP-Parser zu schicken. eval($row[content]) müsste da doch funktionieren?

Nein!

Die Funktion eval() _erwartet_ PHP-Code.
Du übergibst ihr aber etwas das folgendermassen beginnt: "<html><head></..."  -> das ist KEIN PHP-Code.

Deshalb (das habe ich auch in meinem ersten Posting geschrieben) musst du in dem String den "PHP-Bereich" sozusagen schliessen bevor der HTMl-Code beginnt:

"?> <html><head></..."

also: eval("?>".$row[content]."<?");


mfG
brand

PHP-Code aus Datenbank auslesen und ausführen?

Der folgende Beitrag wurde am 01. 11. 2002, 15:36 Uhr von romy veröffentlicht.

> Hi,

> ich hab in einem früheren Posting hier im Forum mitbekommen, dass der Befehl eval() dazu dienen soll, PHP-Code auszuführen (wenn ich ihn z. B. aus einer Datenbank auslese).

> Ich hab das jetzt mal testweise gemacht.

> // Abfrage
> $abfrage = "SELECT content FROM netradio WHERE pageid = '$pageid'";
> $ergebnis = mysql_query($abfrage);
> while ($row = mysql_fetch_array ($ergebnis))
> {
> eval ("\$row[content] = \"$row[content]\";");
eval ('?>' . "\$row[content] = \"$row[content]\";" . '<?php');

> echo $row[content];
> }

warum weiss ich nicht, steht aber so bei php.net in den comments

ciao romy

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4