PHP-Seite in PHP-Seite ohne das Layout zu verlieren
healu
- php
0 Alex0 hotti0 alexander 4454
Erstmals ein 'Hallo' an alle, die diesen Beitrag lesen und im Vorraus direkt ein 'Dankeschön' an alle, die mir weiterhelfen können.
Ich habe ein kleines PHP-Problem bei dem ich Eure Hilfe brauche. Ich habe mit der Such-Funktion leider nichts gefunden, da ich nichtmal wirklich weiß nach welchem Befehl ich suchen soll.
So, mein Problem:
Ich habe eine style.css und eine index.php-Datei. Das Layout an und für sich passt eigentlich und der Inhalt der index-Datei auch.
Ich würde nun gerne eine neue .php-Datei auf meinem Webspace spielen und sie mit dem Layout der Seite 'verlinken'.
zB:
Wenn ich in der Navigation auf den Punkt <a href="?site=impressum">Impressum</a>
klicke, dann würde ich gerne das Layout der Seite beibehalten, nur statt dem Text der auf der Startseite steht, soll eben der Text kommen den ich in die impressum.php-Datei schreibe.
Also eigentlich wie man es auf jeder Homepage findet. Das Layout bleibt gleich (Footer, Logo, ...) und nur der Text den ich schreibe verändert sich wenn ich auf einen Navigationspunkt klicke.
Wie genau muss denn die PHP-Code im index.php stehen und wie muss er im impressum.php stehen?
Ich würde euch bitten mir direkt zu sagen wie der Code lautet, denn damit tue ich mir wirklich leichter. Habe versucht mir gewisse Tutorials anzusehen, aber leider verstehe ich das kaum. Und .php an und für sich muss ich ja auch nicht wirklich perfekt lernen, denn ich brauche NUR diesen einen Code. Also bitte keine Links von irgendwelchen Tutorials schicken.
Wer sich fragen sollte wieso ich eine Homepage mit .php aufbaue ohne es zu können: Ein Freund meinte er sei leichter. Dieser hat mir auch den Code gegeben den ich gerne von euch hätte. Nur habe ich diesen nicht mehr und zu ihm habe ich keinen Kontakt mehr.
Vielen dank nochmals...
Hoffe ich konnte das Problem genau beschreiben.
Hallo,
na das entpsricht aber nicht so ganz dem SELFhtml Gedanken ... naja wobei...HTML machst du ja selbst ;)
ICh schicke dich jetzt trotzdem mal ins Google Land - aber mit dem Begriff "Template". Wenn du da nach Tutorials - oder auch fertigen Lösungen - suchst wirst du schnell fündig. Dort gibt es nicht nur komplizierte sondern auch einfache Tutorials.
Es gibt - sow ie ich das Betrachte - 2 Template Möglichkeiten.
1: Für einfache Seiten
Hier erstellst du dir Header und Footer in z.B.: header.html und footer.html
Für jede Inhaltsseite (index.php, impressum.php, ...) musst du diese HEader und Footer Dateien dann in die .php reinladen.
Das geht mit dem PHP Befehl include() - davon kommt jeweils oben und unten eines hin. Dazwischen der jeweilige Content.
2: KOmplexere Seiten
Du erstellst ein Grundgerüst als .html (oder wie auch immer)
In diesem Gerüst hast du dann Platzhalter (z.B. [TITEL], [NAVIGATION], [CONTENT], ...)
Bei dieser Lösung lädst du dir die Dateiinhalte dieser .html Datei über PHP in die jeweilige Inhaltsseite. Dort ersetzt du dann die Platzhalter durch den individuellen Inhalt und spuckst am Ende alles aus.
(Bevor jetzt jemand meint, dass diese Erklärung Schwachsinn ist: Mir ist durchaus bewusst, dass er da noch sehr viel zu lesen muss, bevor er sowas umsetzen kann. Aber ich bezweifle, dass er Lösung 2 benötigt. Lösung 1 kann er mit einem Blick ins PHP Manual leicht umsetzen)
Gruß
Alex
1: Für einfache Seiten
Hier erstellst du dir Header und Footer in z.B.: header.html und footer.html
Für jede Inhaltsseite (index.php, impressum.php, ...) musst du diese HEader und Footer Dateien dann in die .php reinladen.
Das geht mit dem PHP Befehl include() - davon kommt jeweils oben und unten eines hin. Dazwischen der jeweilige Content.
Hey Alex,
danke für die schnelle Antwort.
Hierzu aber noch ein paar kleine Frage am Rande:
Ich erstelle jetzt also header.html und footer.hmtl. In diese schreibe ich eben den Code hinein damit header und footer richtig angezeigt werden.
Anschließend erstelle ich die Datei impressum.php.
Folgende Punkte verstehe ich leider nicht:
z.B.:
index.php
----------
<?php
include("pfad/zur/datei/header.php");
// Dein Content
include("pfad/zur/datei/footer.php");
?>
header.php
-----------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Dein Titel</title>
</head>
<body>
footer.php
-----------
</body>
//Andere Sachen die du im Footer möchtest
</html>
Oder du machst es so:
index.php
----------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Dein Titel</title>
</head>
<body>
<?php
//du schaust auf welcher Seite du bist:
$seite = $_GET['page'];
switch($seite) {
case 'startseite':
include("pfad/zur/datei/starseite.php");
break;
case 'bilder':
include("pfad/zur/datei/bilder.php");
break;
case 'impressum':
include("pfad/zur/datei/impressum.php");
break;
default:
include("pfad/zur/datei/startseite.php");
break;
}
?>
</body>
</html>
In den jeweiligen Datein "startseite.php", "bilder.php", "impressum.php" schreibst du wieder nur den Content. Also das was du im <body> haben möchtest.
Beachte aber, dass in diesem Beispiel die $_GET['page']
variable nicht validiert wird.
Hoffe, dir ein wenig weitergeholfen zu haben.
MfG
Napster
hi,
Ich würde nun gerne eine neue .php-Datei auf meinem Webspace spielen und sie mit dem Layout der Seite 'verlinken'.
Ne. Mein Vorschlag: Betrachte Deine HTML-Seiten als Objekte und lege Eigenschaften fest wie:
* title
* description
* css-file
usw.
Möglich auch, das zu verwendende Template als Eigenschaft zu definieren. Wenn Du so rangehst, wird das alles zusammen ungeahnt pflegeleicht.
Hotti
Also ich hoffe, dass ich das richtig verstanden habe.
Du könntest deine Seite so aufbauen:
Zuerst die Elemente, die auf allen Seiten gleich sind, also z.B.
Header div
Menu div
leerer Content div
Footer div
In den leeren Content div schreibst du jetzt:
Wenn die Get-Variable "site" "Impressum" ist, dann include impressum.php;
Wenn die Get-Variable "Kontakt" ist, dann include Kontakt.php;
Include ladet einfach den Quelltext der Impressum.php in die Index.php hinein.
Also in die Impressum.php schreibst du den Quelltext, der dann im Content div erscheinen soll.