Zur Boardunity Forenstartseite
  #1  
Alt 02.09.2003, 14:35
Benutzerbild von Daniel Richter
TVBlogger
 
Registriert seit: 07.2003
Ort: Wilhelmshaven
Beiträge: 2.110

eval()'d Code Fehler


Moin Leute.
Ich versuch mich gerade an Template Ausgaben und habe da eine Funktion für geschrieben, die wiefolgt aussieht
PHP-Code:
function template($template) { 
 
$query = @mysql_query("SELECT templatecode FROM `template` WHERE templatename = \"$template\""); 
 while(list(
$templatecode) =  @mysql_fetch_row($query))  
 {
 return 
$template $templatecode;
 }
 } 
Nun habe ich meinen Template Code in meine DB gespeichert (wobei ich anmerken muss, dass der HTML Code auch " " enthällt). Abrufen tu ich die Templates dann mit
PHP-Code:
eval ("\$templatename = \"".template("header")."\";");
echo 
$templatename
Nun kommt bei dem header Template aber folgender Fehler
Zitat:
Parse error: parse error, unexpected T_STRING in /www/htdocs/dariweb/discussion/header.php(20) : eval()'d code on line 4
Ich sehe auch, dass es ein Parse Error ist, aber wo ist da denn bitte der Fehler? :o
__________________
Daniel Richter
Immer ein Besuch wert: TVBlogger.de - Aktuelle Nachrichten aus der Welt des Fernsehens
  #2  
Alt 02.09.2003, 14:41
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888

Re: eval()'d Code Fehler


Du musst natürlich die Anführungszeichen escapen bevor du das Template durch eval() jagst.
Sieht dein Template nähmlich so aus

Dein Name ist "$username"

macht das via eval folgenden Ausdruck;

$templatename = "Dein Name ist "$username"";

Kann nicht funktionieren...

Abhiflfe gibts folgendermaßen:

Code:
eval ("\$templatename = stripslashes(\"".addslashes(template("header"))."\");");
echo $templatename;
D.h. vor dem evaluiren werden die Anführungszeichen escaped und gleich nach dem evaluieren wieder gestripped...
__________________
Johannes Klose
Calitrix Wiki - Wiki auf Basis von PHP und MySQL
  #3  
Alt 02.09.2003, 14:45
Benutzerbild von Daniel Richter
TVBlogger
 
Registriert seit: 07.2003
Ort: Wilhelmshaven
Beiträge: 2.110
jo stark! Hat geklappt! Danke

__________________
Daniel Richter
Immer ein Besuch wert: TVBlogger.de - Aktuelle Nachrichten aus der Welt des Fernsehens
  #4  
Alt 02.09.2003, 14:51
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
Ich glaub ich hab dir da gerade einen kleinen Denkfehler eingebaut.
Den stripslashes() Aufruf kannst du auch weglassen da die Slashes die via addslashes() vor die Anführungszeichen gesetzt werden durch das evaluiren ja automatisch wieder wegfallen.
So müsste das richtiger Funktionieren:

Code:
eval ("\$templatename = \"".addslashes(template("header"))."\";");
echo $templatename;

__________________
Johannes Klose
Calitrix Wiki - Wiki auf Basis von PHP und MySQL
  #5  
Alt 02.09.2003, 14:58
Benutzerbild von Daniel Richter
TVBlogger
 
Registriert seit: 07.2003
Ort: Wilhelmshaven
Beiträge: 2.110
Zitat:
Original geschrieben von exe
So müsste das richtiger Funktionieren:
Kann etwas richtiger als richtig funktionieren?
Aber trotzdem danke

__________________
Daniel Richter
Immer ein Besuch wert: TVBlogger.de - Aktuelle Nachrichten aus der Welt des Fernsehens
  #6  
Alt 02.09.2003, 15:10
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
Zitat:
Original geschrieben von codemonkey
Kann etwas richtiger als richtig funktionieren?
Mein Schreibstil ist speziellerer Natur, ich weiss

__________________
Johannes Klose
Calitrix Wiki - Wiki auf Basis von PHP und MySQL
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
eval()'d Code Fehler Turik Programmierung und Datenbanken 10 02.10.2004 08:04
Fehler beim WBB 1.2 Lassie Forensoftware 4 15.06.2004 10:36
Unwiderrufliche Vereinbarung / Code 431.322.12 of the Internet Privacy Act delta-lima2 Onlinerecht, Datenschutz und Sicherheit 3 09.04.2004 13:28
Fehler nach Einrichtung von Apache macs Programmierung und Datenbanken 11 28.03.2004 15:49






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24