Guten Abend,
ich habe mir eine php-Seite mit Templates erstellt.
Nun habe ich das Problem das die php-Seiten die (je nachdem welchen Link man in der Navi anklickt) mit hilfe von der index.php in der haupt.html Datei das [%content%] ersetzen, als html Code wiedergegeben werden.
Wie im Bild zusehen:
Wenn ich die php-Seiten direkt im Browser aufrufe funktioniert alles wie es soll.
Ich gehe davon aus das es etwas mit "file()" oder "implode()" da implode alles zu einer Zeichenkette verbindet.
Vlt. könnt ihr mir sagen wo das Problem liegt und/oder habt einen Vorschlag wie ich das mit den Templates besser Lösen kann.
Lg Kintrax
Inhalt der haupt.html:
Inhalt der index.php:
Und das hier ist der Inhalt von buch.php:
ich habe mir eine php-Seite mit Templates erstellt.
Nun habe ich das Problem das die php-Seiten die (je nachdem welchen Link man in der Navi anklickt) mit hilfe von der index.php in der haupt.html Datei das [%content%] ersetzen, als html Code wiedergegeben werden.
Wie im Bild zusehen:
Wenn ich die php-Seiten direkt im Browser aufrufe funktioniert alles wie es soll.
Ich gehe davon aus das es etwas mit "file()" oder "implode()" da implode alles zu einer Zeichenkette verbindet.
Vlt. könnt ihr mir sagen wo das Problem liegt und/oder habt einen Vorschlag wie ich das mit den Templates besser Lösen kann.
Lg Kintrax
Inhalt der haupt.html:
HTML:
<div class="header">[%header%]</div>
<div class="navi">[%navi%]</div>
<div class="top5">[%top5%]</div>
<div class="content">[%content%]</div>
<div class="footer">[%footer%]</div>
PHP:
<?php
#----------------------------------------------------
#Templates:
$seiten_template = "templates/haupt.html";
$header_template = "templates/header.html";
$navi_template = "templates/navi.html";
$top5_template = "templates/top5.html";
$footer_template = "templates/footer.html";
#----------------------------------------------------
#Inhaltsdateien:
$content_files = array();
$content_files['uebersicht'] = "content/uebersicht.php";
$content_files['buch'] = "content/buch.php";
$content_files['faq'] = "content/faq.php";
$content_files['kontakt'] = "content/kontakt.php";
$content_files['impressum'] = "content/impressum.php";
$content_files['agb'] = "content/agb.php";
$content_files['login'] = "content/login.php";
#----------------------------------------------------
#file_get_contents() liest eine komplette Datei in ein Array und gibt sie in einem String zurück
#Template einlesen:
$seiten_content = file_get_contents($seiten_template);
$header_content = file_get_contents($header_template);
$navi_content = file_get_contents($navi_template);
$top5_content = file_get_contents($top5_template);
$footer_content = file_get_contents($footer_template);
#----------------------------------------------------
#preg_replace() durchsucht die Zeichenkette "subject" ($page) nach Übereinstimmungen mit [%Content%], [%navi%] etc. und ersetzt sie mit replacement.
#Seite aus Templates zusammenfügen:
$page = $seiten_content;
$page = preg_replace("/\[\%header\%\]/", $header_content, $page);
$page = preg_replace("/\[\%navi\%\]/", $navi_content, $page);
$page = preg_replace("/\[\%top5\%\]/", $top5_content, $page);
$page = preg_replace("/\[\%footer\%\]/", $footer_content, $page);
#----------------------------------------------------
#Inhalt Seitenabhängig einlesen:
$get_page = "";
if(isset($_GET['page']))
$get_page = $_GET['page'];
else
$get_page = "uebersicht";
$content_lines = file($content_files[$get_page]);
$content = implode("", $content_lines); #Verbindet die Elemente eines Array mittels (glue) zu einer Zeichenkette.
#----------------------------------------------------
#Inhalt in Seite einfügen:
$page = preg_replace("/\[\%content\%\]/", $content, $page);
#-------------------------------------------
# Fertige Seite ausgeben:
echo $page;
?>
PHP:
<?php
#------------------------------------------------------------------
#Datenbankverbindung
#------------------------------------------------------------------
$host = "";
$user = "";
$pass = "";
$dbase = "";
$connection = mysql_connect("$host", "$user", "$pass")
OR die ("MySQL-Error: " . mysql_error());
$db = mysql_select_db($dbase, $connection)
OR die ("MySQL-Error: " . mysql_error());
$buchinfos = mysql_query("SELECT * FROM buecher", $connection);
#-------------------------------------------------------------------
#Ausgabe der Daten des Buches und der html tags
#-------------------------------------------------------------------
while ($infos = mysql_fetch_array($buchinfos)) { #Anfang der while Schleife
#-------------------------------------------------------------------
#Ausgabe der Tabelle die das Cover und den Amazonlink/grafik enthält
#-------------------------------------------------------------------
echo "<table class='cover'>" . "<tr>" . "<td>" . "<img src='" . $infos['Bild'] . "'" . " width='150' height='228'>" . "</td>" . "</tr>" . "<tr>" . "<td>" . "<a href='" . $infos['amazonlink'] . "'>" . "<img src='http://img22.imageshack.us/img22/7587/amazonbuy.gif'>" . "</a>" . "</td>" . "</tr>" . "</table>";
#-------------------------------------------------------------------
#Ausgabe der Infoboxtabelle und den zugehörigen Daten
#-------------------------------------------------------------------
echo "<table class='infobox'>";
echo "<tr>" . "<td>" . "Genre:" . "</td>" . "<td>" . $infos["Genre"] . "</td>" . "</tr>";
echo "<tr>" . "<td>" . "ISBN:" . "</td>" . "<td>" . $infos["ISBN"] . "</td>" . "</tr>";
echo "<tr>" . "<td>" . "Originaltitel:" . "</td>" . "<td>" . $infos["Originaltitel"] . "</td>" . "</tr>";
echo "<tr>" . "<td>" . "Erschienen:" . "</td>" . "<td>" . $infos["Erschienen"] . "</td>" . "</tr>";
echo "<tr>" . "<td>" . "Verlag:" . "</td>" . "<td>" . $infos["Verlag"] . "</td>" . "</tr>";
echo "<tr>" . "<td>" . "Einband:" . "</td>" . "<td>" . $infos["Einband"] . "</td>" . "</tr>";
echo "<tr>" . "<td>" . "Seiten:" . "</td>" . "<td>" . $infos["Seiten"] . "</td>" . "</tr>";
echo "<tr>" . "<td>" . "Ø Bewertung: " . "</td>" . "<td>" . $infos["Bewertung"] . "</td>" . "</tr>" . "</table>";
echo "<div class='inhalt'>" . "<span>" . "<h4>" . $infos["Titel"] . " von " . $infos["Autor"] . " - " . "Inhaltsangabe" . "</h4>" . "</span>" . $infos["Inhalt"] . "</div>";
} #Ende der while Schleife
?>
<?php
mysql_close($connection);
?>