ptr1980 schrieb am 24.03.2005 13:09
ich denke doch das ich diese besagte html seite einteilen muss (womöglich mit div?). |
1) Für das Verständnis von include() und wie Du das anwendest, ist das völloig irrelevant, was in der Seite steht. Du kannst ja auch nur zum Test den HTML-Header includen, also den Doctype, das <html>-Tag, den kompletten <head> usw.
2) Vergiss die divs. Und vergiss das Einteilen. CSS-Layout funktioniert anders. Aber worüber diskutieren wir momentan? Über include() oder über CSS-Layout?
| wenn ich eine andere seite include, habe ich ja keine größe für diese seite definiert???!!! |
Du includest ja keine Seite!
Du includest eine *Datei*. Der Inhalt dieser Datei wird *serverseitig* *anstelle* des Include-Befehls eingefügt. So als würdest Du die Zielseite in einem Editor aufmachen, die Zeile mit dem include() entfernen und an dieser Stelle den Inhalt der anderen Datei einfügen. Mehr passiert beim include nicht! Da gibt es noch keine "Seiten" und auch HTML wird da nicht nicht interpretiert. Es geht da nur um Textdateien, wo eine Zeile ersetzt wird durch den Inhalt einer Datei.
| und wenn ich möchte das die header und footer immer die gleiche größe haben - frames? |
Nein!
Niemals nie Frames!
Deswegen sprechen wir doch über include.
In dem Moment, wo der include läuft, gibt es keine Seiten, keine Header, keine Größen. Nur Buchstaben und Zahlen in Textdateien, die neu zusammengebaut werden. Am Ende kommt eine einzige Seite raus, die an den Browser geschickt wird. Für den Browser sieht das dann so aus, als stünde der *gesamte* Text in der einen Datei. Davon, dass diese Seite vorher am Server aus mehreren Dateien zusammengesetzt wurde, weiß der Browser nichts, und davon sieht auch der Besucher der Seite nichts.
Welche Größe, welchen Inhalt usw. Deine Seite hat, ist für das include völlig unerheblich!
So könnte das aussehen:
Datei impressum.php:
<?php include($_SERVER["DOCUMENT_ROOT"]."/include/htmlhead.inc"); ?>
<?php include($_SERVER["DOCUMENT_ROOT"]."/include/header.inc"); ?>
<?php include($_SERVER["DOCUMENT_ROOT"]."/include/menu.inc"); ?>
<h2>Impressum</h2>
<address>
Meine Anschrift
</address>
</body>
</html>
Datei htmlhead.inc:
<?DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Meine Testseite</title>
</head>
<body>
Datei header.inc:
<h1><img src="meinlogo.gif" alt="Willkommen bei mir!" /></h1>
Datei menu.inc:
<ul>
<li><a href="me.php">Über mich</a></li>
<li><a href="kontakt.php">Kontakt</a></li>
<li><a href="impressum.php">Impressum</a></li>
</ul>
---------------------------------------
So, und PHP geht nun serverseitig her, und stellt den Inhalt der oben genannten Dateien *anstelle* der Zeile mit dem Include-Befehl. Nach durchgeführtem include hast Du folgende Seite, die an den Browser ausgeliefert wird:
<?DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Meine Testseite</title>
</head>
<body>
<h1><img src="meinlogo.gif" alt="Willkommen bei mir!" /></h1>
<ul>
<li><a href="me.php">Über mich</a></li>
<li><a href="kontakt.php">Kontakt</a></li>
<li><a href="impressum.php">Impressum</a></li>
</ul>
<h2>Impressum</h2>
<address>
Meine Anschrift
</address>
</body>
</html>
--------------------
So funktioniert include().
Konnte ich Dir weiterhelfen?