michael: inhalt aus DB enthält php-code

Beitrag lesen

Hallo,

ich habe ein winziges CMS geschrieben, welches zur Lagerung der Inhalte ein MySQL-DB nutzt. Dabei habe ich 2 Probleme:

1.
mysql_query("INSERT INTO artikel (titel, inhalt, erstellt) VALUES('$titel','$inhalt','$erstellt') ") or die(mysql_error());

Wenn ich in $inhalt nun einfache Anführungszeichen habe ('), gibt es einen Syntax-Error. Wie kann ich das umgehen, damit ich beide Arten von Anführungszeichen nutzen kann, die dann in der DB gespeichert werden?

2.
Der Inhalt wird aktuell durch ein einfaches echo wiedergegeben. Nun möchte ich aber (wie im Titel geschrieben) auch PHP-Code in den Artikeln unterbringen, um bspw. eine zuvor definierte Funktion aufzurufen. Wie mache ich das?
Also dass alle Inhalte aus der DB so eingebunden werden, als wären sie in einer Datei mit include() aufgerufen worden.

Hat das irgendwas mit Buffern zu tun?

Ein Eintrag in der DB könnte als Inhalt bspw. folgendes haben:

------------

<div id="content">  
<?php  
$foo = 'bar';  
echo $foo;  
?>  
</div>

------------

Weiterführendes Problem:
Momentan habe ich alles in Dateien abgespeichert. Einzelne Templates etc. werden über include() aufgerufen. Wenn nun der Code in der DB steht, wie kann ich dann dass include() ersetzen, um das Template ebenfalls aus der DB abzurufen?

Also ich rufe die URI host.de/pfad/news/13 auf.
--> Der Datensatz 'News' wird aufgerufen. Dieser enthält den Code, wie News zu behandeln sind.
----> 'News' ruft in der News-DB die entsprechenden Inhalte zur ID 13 ab.
----> 'News' ruft das Template für die Newsanzeige aus der DB ab
------> Das Template enthält das DOM und entsprechende Variablen für den Inhalt

Bsp. Template:
-----------
<div class="news"><div class="titel"><?php echo $titel; ?></div></div>
-----------

Vielen Dank für eure Mühe
michael