1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

PHP code in DB speichern und auslesen

  • HMS
  • 22. Mai 2008 um 18:13
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • HMS
    Punkte
    194
    Beiträge
    26
    • 22. Mai 2008 um 18:13
    • #1

    Hallo!

    Ich speichere HTML Code in einer MYQL Datenbank, um ihn nachher in einem CMS als Seite ausführen zu können. Dieser code enthält aber auch Zeilen in Php, z.B: ein include zum einbinden einer navigationsliste und einen footer. Wenn ich dann den Datenbankeintrag, der den gewünschten HTML /PHP Code enthält, mittels echo ausgeben will um die seite anzeigen zu können, scheint der PHP Code ignoriert zu werden.

    Ich habe den Code für das einbinden der navigationsliste eingebaut, weil sich ja die navigationsleiste ändern kann. Wenn ich die navigationsleiste als fertigen html code in die DB speichern würde wird immer nur dieser ausgeführt, ohne Rücksicht auf Veränderungen.

    Also wenn der DB Eintrag so aussieht (Auszug):

    (In Spalte: CreatedDocument)

    PHP
    <body>
    <div id="wrapper">
    <div id="header"></div>
    <?php include("navigation.php");?>
    <div id="content">

    Und ich im Programm, welches auf die Datenbank zugreift, habe:

    PHP
    if(isset($articleID)) {
    
    
      $selectStatement = mysql_query("SELECT * from article where ID = '$articleID'");
    
    
      while($currentRow = mysql_fetch_array($selectStatement)) {
    
    
     /*Gibt das gefundene HTML Document aus*/
      echo $currentRow['CreatedDocument'];
    
    
    }
    
    
    }
    Alles anzeigen

    Wird der HTML Code richtig ausgeführt, aber PHP ignoriert und ich bekomme somit keine Navigationsleiste.

    Danke im Voraus!

    2 Mal editiert, zuletzt von HMS (22. Mai 2008 um 18:17)

  • spinball
    Punkte
    1.192
    Beiträge
    223
    • 22. Mai 2008 um 18:45
    • #2

    Normalerweise benutzt man dafür die Funktion eval. Es ist aber ganz schön riskant, soetwas zu machen. Du solltest dir vielleicht Alternativen dazu überlegen. Zum einen gibt es die Möglichkeit, die Pfade zu den Dateien, die inkludiert werden sollen, extra in die Datenbank zu schreiben. Du brauchst dazu neue eine Tabelle, in der die Pfade als Strings stehen.

    PHP
    $result = mysql_query("SELECT pfad FROM modules WHERE id = '$articleID'");
    while($row = mysql_fetch_assoc($result)) {
    	include($row['pfad']);
    }

    Oder du schreibst eine Funktion, die auf Schlüsselworte in den Strings reagiert. Dann kannst du die Include-Befehle in der Datenbank lassen.

    PHP
    function parse($str) {
    	preg_match_all("/{include:(.+).php}/iU",$str,$found);
    	foreach($found[1] as $path) {
    		include($path.".php");
    	}
    	return str_replace($found[0],"",$str);
    }

    Diese Funktion sucht im String nach "{include:bla.php}", inkludiert die Datei und löscht den Befehl aus dem String. Mit regulären Ausdrücken kann man viel Unsinn treiben. Beware!

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum