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?
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
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
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
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