Einfügen von Überschriften per Include
Chris
- php
Hallo,
ich habe zwei PHP-Dateien. Eine header.php und eine footer.php Dazwischen sollen nun die einzelnen Seiten der Homepage stehen. Bisher habe ich folgendes gemacht, dass die einzelne Seite die Include-Befehle zu header.php und footer.php gesetzt. Doch Nun habe ich ein Problem, die Überschrift der einzelnen Seiten soll in der Header.php included werden. Wie geht dass?
Die Header.php muss erkennen aus welcher Datei Sie die Überschrift includen muss.
Vielleicht gibt es auch eine andere Idee?
Gruß
Chris
Hallo Chris,
wird irgeneine Funktion aufgerufen, die den Header schreibt, oder ist der Inhalt von header.php nur ein Snippet?
In letzterem Fall pack ihn in eine Funktion und uebergib dieser den Namen der Ueberschriftendatei.
Dieter
Hallo Chris,
wird irgeneine Funktion aufgerufen, die den Header schreibt, oder ist der Inhalt von header.php nur ein Snippet?
Der Code ist nur Snippet.
In letzterem Fall pack ihn in eine Funktion und uebergib dieser den Namen der Ueberschriftendatei.
Ich habe mehrere Seiten wie Impressum, Kontakt, Bilder, etc. dazu soll die header.php automatisch die Überschrift includen. Die Überschrift soll aus einer Zeile der Seiten (Impressum, Kontakt,...) entnommen werden. Problem wäre, wie bekomme ich das geregelt, dass die header.php weiß wie die Datei heißt, aus der die Überschrift included wird? Die header.php wird ja durch die Seite (Impressum, Kontakt,...) includet. Nun kann das die header.php feststellen, welche Datei gerade sie benutzt?
Gruß
Chris
Hallo,
Ich habe mehrere Seiten wie Impressum, Kontakt, Bilder, etc. dazu soll die header.php automatisch die Überschrift includen. Die Überschrift soll aus einer Zeile der Seiten (Impressum, Kontakt,...) entnommen werden. Problem wäre, wie bekomme ich das geregelt, dass die header.php weiß wie die Datei heißt, aus der die Überschrift included wird? Die header.php wird ja durch die Seite (Impressum, Kontakt,...) includet. Nun kann das die header.php feststellen, welche Datei gerade sie benutzt?
Also ich mache das so:
// Das kommt in die Datei Impressum:
<?php
$title = 'Impressum';
include("head.php");
// Ganz viel Impressum
include("foot.php");
?>
// Das kommt in die Datei head.php
// Alles mögliche was vor <title> kommt
<title><?php echo $title ?> - Vivos O Muertos</title>
// Alles mögliche was nach <title> kommt
Grüße
Jeena Paradies
Hallo Jeena,
Also ich mache das so:
// Das kommt in die Datei Impressum:
<?php
$title = 'Impressum';
include("head.php");// Ganz viel Impressum
include("foot.php");
?>
IMHO eleganter:
<?php
$title
ob_start();
?>
<p>Ganz viel Impressum</p>
<?php
$inhalt = ob_get_clean();
include('template.php');
?>
Das kommt in die Datei template.php
...
<title><?php echo $title ?></title>
...
<body>
<?php echo $inhalt ?>
</body>
...
Schöne Grüße,
Johannes
Hallo,
<?php
$title
ob_start();
?>
<p>Ganz viel Impressum</p>
<?php
$inhalt = ob_get_clean();
include('template.php');
?>Das kommt in die Datei template.php
...
<title><?php echo $title ?></title>
...
<body>
<?php echo $inhalt ?>
</body>
...
So etwas kannte ich noch nicht, danke für den Tipp.
Grüße
Jeena Paradies
Hallo Jeena,
So etwas kannte ich noch nicht, danke für den Tipp.
Noch zwei Links, dich gestern Abend vergessen hab:
http://www.schierge.de/tobias/entwicklung/php-templates/ und
http://www.php.net/manual/en/ref.outcontrol.php bzw.
Schöne Grüße,
Johannes
Hallo,
http://www.schierge.de/tobias/entwicklung/php-templates/ und
http://www.php.net/manual/en/ref.outcontrol.php bzw.
Da habe ich jetzt noch ein Problem bei dieser Art der Lösung. Bisher - also mit foot.php - konnte ich MySQL Fehler so auffangen:
-------------------------------------
if (mysql_errno() == 1062)
{
echo "<h2>Du scheinst Die Nachricht aus Versehen zwei mal abschicken zu wollen.</h2>";
include("foot.tpl");
mysql_close();
die;
}
-------------------------------------
Wenn ich dann jetzt aber keine foot.tpl mehr habe, sondern das Script an dieser Stelle einfach abbricht dann habe kriegt der Browser den unteren Teil der Datei nicht mehr und das sieht scheiße aus. Irgendwie komme ich nicht drauf wie ich das anders lösen könnte. Hast du vieleicht noch einen Tipp?
Grüße
Jeena Paradies