Frage zu PHP Template Parser Tutorial

psifactory

Erfahrenes Mitglied
Hi,

Hätte da ne Frage zu o.g. Tutorial. Ist es da möglich auch php code über die Datenbank einzufügen der dann ausgeführt wird? Habe das Script bei mir eingebaut und habe jetzt bemerkt dass mein Kontaktformular welches in Php ist als text ausgegeben wird :( :(

Grüsse
 
Wenn Du PHP-Code aus einer Datenbank holen und ausfuehren willst musst Du mit eval() arbeiten. Damit solltest Du aber verdammt vorsichtig sein, vor allem wenn der auszufuehrende Code irgendwas enthaelt was vom User manipuliert werden kann.
 
Also ich hab das ganze jetzt mal durchprobiert aber irgendwie klappt das ganze nicht ganz bei mir..

Hier mein Code von der index.php

PHP:
<?php
 //Script zum zeilenweisen Parsen von HTML Templates
 //20.03.2003 Nils 'Jonathan' Adomeit LV1.2

 //Einbinden der Template Klasse
 include("class_tpl_parser_lite.inc.php");

 //Uservariablen f&uuml;r den Datenbankzugang
 $mysql["host"] = "localhost";
 $mysql["user"] = "***";
 $mysql["password"] = "***";
 $mysql["database"] = "usr_web15_1";

 //Definition der ID, Wenn keine ID &uuml;bergeben wurde
 //nimmt das System die Standard ID
 if(!isset($_GET["id"])) $id = 1;
 if(!isset($id)) $id = $_GET["id"];

 //Datenbankverbindung aufbauen und Datenbank ausw&auml;hlen
 mysql_connect($mysql["host"],$mysql["user"],$mysql["password"]);
 mysql_select_db($mysql["database"]);

 //Datenbankabfrage zusammenstellen
 $sql = "SELECT * FROM doc_desc, doc_text "
      . "WHERE doc_desc.c_id = doc_text.id AND doc_text.id = $id";

 //Datenbank wird abgefragt
 $_result = mysql_query($sql);
 //Das Ergebniss wird in dem Feld ($_array) gespeichert
 $_array = mysql_fetch_assoc($_result);

 //Definition der Variablen durch die die Platzhalter
 //ersetzt werden.
 $title    = $_array["title"];
 $css      = $_array["css"];
 $template = $_array["template"];
 $text     = $_array["text"];
 
 //Array mit den Platzhaltern (Keys) und den Inhalten.
 $var_array = array("TITLE" => $title,
                    "CSS" => $css,
                    "TEXT" => eval($text));

 //Initialisierung der Klasse und Parsen des Templates
 $tpl = new parser($template, $var_array);
?>
 
ups :-) da hab ich das wohl glatt vergessen zu entfernen ... man bin ich blöd :-)

Irgend ne Idee wie ich mein Problem bewältigen könnte?
 
Also irgendwie krieg ich es immer noch nicht hin dass mein contact formular funktioniert. Langsam stell ich mir ich mir echt die Frage ob das ganze überhaupt möglich ist. Hab auch inzwischen alle Threads zu dem Thema gelesen aber irgendwie werd ich daraus nicht schlau.

Brauch da echt dringend Hilfe. Würde auch ein paar Design Sachen als Gegenleistung bieten wenns benötigt wird. :-)
 
Zurück