• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

eval() Problem

Witschi262

Blogger
Hi,
ich habe ein PHP Problem. Ich möchte gerne ein "Misch"-Script aus meiner Datenbank auslesen. Sowohl PHP als auch Teilweise HTML.
Das ganze soll also sowohl Text, als auch PHP Script enthalten. Auch wären einige Sicherheitsaspekte sehr hilfreich!

Leider kriege ich folgende Fehlermeldung:

Parse error: syntax error, unexpected '<' in /users/witschi262/www/backend/moduls.php(63) : eval()'d code on line 1


Meine Vermutung - Das Script nimmt nur reinen PHP Code. Leider nicht. Auch als ich den ganzen HTML Quellcode durch echo ''; umschreiben wollte meckert er wieder. Gibt es vielleicht eine andere Möglichkeit das möglichst bequem zu machen? Kann ich vielleicht den PHP Code in der Datenbank selber vielleicht nicht als "Text" sondern wirklich als Code speichern? Oder kann ich den Code anderweitig "umformen" damit es als Script interpretiert wird?

Danke für jede Hilfe.

-Greetz
 
Werbung:
Nein, ich glaube eher, dass du einen Fehler in deinem Code hast ^^

Zeig doch mal ein Stück deines Codes, der den Code aus der Datenbank holt und evaluiert und den Code, der aus der Datenbank kommt ;)
 
[FONT=Verdana, sans-serif]OKAY

PHP:
echo '<form action="'.$id.'&send" method="post"><input type="submit" value="Senden"><textarea name="content" rows="5" cols="67"></textarea></form>';

Drunter is dann noch ne $_REQUEST Abfrage mit Datenbank eintrag. Datenbank:
PHP:
<?php<br />echo \'<form action=\"\'.$id.\'&send\" method=\"post\"><br /><textarea name=\"content\" rows=\"5\" cols=\"67\"></textarea> <br /><br /><input type=\"submit\" value=\"Senden\"><br /></form><br /><br />

Die Umbrüche kriege ich elider nicht raus.[/FONT]
 
Werbung:
Ist im Original ein Leerzeichen zwischen <?php und <br \> ?
PHP:
<?php<br />

Außerdem stimmt da ja was nicht mitm Mischen von HTML und PHP ;)
 
Hast du mal geschaut, was in der Datenbank wirklich steht? Vielleicht liegt es weniger am Code holen und mehr am Code in der Datenbank speichern? Denn es liegt definitiv an dem <br /> am Anfang ;)
 
Werbung:
Danke. Jetzt meckert der alte an etwas anderen.

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING in/users/witschi262/www/backend/moduls.php(63) : eval()'d code on line 1


Kann das an den Backslashes liegen?
 
Lass das sein mit eval, das ist ganz ganz ganz ganz schlechter Stil.
So wie ich das sehe, brauchst du eine Template-Engine wie Twig oder Smarty.

eval() zeugt von schlechter Applikationsstruktur und dessen Benutzung ist unsauber.
 
Werbung:
Moin,
eval richtig genutzt ist nicht von Grund auf Böse, viele Template-Engines, auch Smarty, nutzen eval in Ihrem code.
Man muss nur _genau_ wissen was man tut, wenn man das einsetzt.

MfG
 
eval() sollte nie benutzt werden. Sollte Smarty wirklich eval() benutzen, rate ich von dessen Benutzung doch ab. Twig benutzt für einen kleinen Teil eval(), der nicht einmal erwähnenswert ist.

Eval ist neben dem Sicherheitsrisiko einer der schlimmsten Performancekiller überhaupt. Aber ich rede hier sowieso nur für die Wände, weil ich immer irgendwelche nuancierte Gegen"argumente" bekomme. Statt hier mal ordentlich zu sagen, dass diese Methode schlecht ist und nie benutzt werden sollte, lese ich hier alles außer den einzig sinnvollen Ratschlag.
 
Zurück
Oben