Hello,
Bei eval() stellet man sich am besten vor, dass man den Code, so wie er da steht, ins Script schreibt. Eval() macht nämlich nichts anderes mit Strings als include() mit Dateien.
$string = "echo '<a href="' . basename($_SERVER['PHP_SELF']) . '?id=1">News</a><br />";
Die Variable ($_) muss maskiert werden, da sie ja erst zur Ausführungszeit mit eval() ersetzt werden soll durch den dann geltenden Wert.
$upd_string = mysql_escape_string($string);
An die MySQL-Schnittstelle muss ein escaped String übergeben werden
...
insert into table set dyn_func = $upd_string;
...
$sql = "select from table where ID = ".lastinsertid();
$res = mysql_query($sql,$con);
if($res)
{
$_rec = mysql_fetch_assoc($res);
$string = $_rec['dyn_func'];
in $string sollte jetzt ++echo '<a href="' . basename($_SERVER['PHP_SELF']) . '?id=1">News</a><br />++ drinstehen. (++ sind meine Hilfshäkchen für die Darstellung)
das lassen wir uns jetzt mal ausgeben zur Kontrolle:
echo nl2br(htmlentities($string))."<br />\n";
und dann mit eval ins Script holen und ausführen:
eval ($string);
}
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau