Antworten auf deine Fragen:
Neues Thema erstellen

Frames mit PHP

rocksart

Noch nicht viel geschrieben

Guten Abend erstmal :)
Ich wusste nicht ganz, was für einen Titel ich meinem Problem zuweisen soll, also konnte ich dementsprechend auch nicht wirklich die Suchfunktion benutzen. Bin noch etwas neu im Umgang mit php.

Ich hab einmal fix ein Bild erstellt, damit ihr euch besser vorstellen könnt, worum es mir geht.


Nun zu meinem Problem:
Ich habe nun schon herausgefunden, dass es einfacher ist mit "include" zu arbeiten, jedoch weiß ich nicht, wie ich es anstelle, dass sich meine Unterseiten, die sich via Hyperlink in meiner Navigation befinden (<?php include("navigation.php"); ?>) immer rechts in dem Contentfeld (siehe Bild) öffnen.
Mit HTML kann man das ja mit Framesets machen, aber mit php hab ich da noch nicht ganz den Bogen raus.

Wenn etwas unverständlich ist, einfach nachfragen, ich antworte dann so schnell wie möglich.
Danke im Vorraus. :)
 

landrobber

Noch nicht viel geschrieben

AW: Frames mit PHP

Frames? AAAAAAAAAAAAAAHRG :-(. Vergiss das gleich wieder! Frames sind bereits seit einigen Jahren verpönt!
Was du suchst ist ein sog. "Spaltenlayout", das kannst du sowohl in php als auch in html programmieren. Zauberwort hierbei ist CSS!
Also, Google ist dein Freund, besonders wenn du Google mit "Spaltenlayout css" fütterst ;-)
 

ChrisvA

Aktives Mitglied

AW: Frames mit PHP

Nun zunächst einmal brauchst du das Layout für eine Seite (Pseudoinhalt reicht.)
Dann ersetzt du im Kopfdiv de Inhalt durch
include("header.php")
Entsprechend bindest du die Navileiste ein.
Den Inhalt kannst du dann über folgendes Prinzip einbinden:
PHP:
$pages = array(
'id' => 'Dateiname.php',
'home' => 'home.php',
'kontakt' => 'kontakt.php'
);
if( isset($_GET['id']) && isset($pages[strtolower($_GET['id'])]){
include ($pages[strtolower($_GET['id'])]);
}else{
include 'start.php';
}
Die URL's haben dann jeweils das Muster:
inder.php?id=Seitenid

PS: Mir ist bewusst, dass die Variante mit dem Array vielen übertrieben scheint, aber es ist auf jeden Fall die einfachste Methode das ganze wirklich komplett Sicher zu machen.
Falls die Seite irgendwann zu Umfangreich wird, kann man auch das Array durch eine Datenbank ersetzen.
Ich rate aber von Konstukten wie
PHP:
include($_GET['id'].'.php')
ab, egal wie viel man vorher geprüft hat, jeder Fehler ist da sofort der GAU, da man den kompletten Webspace damit übernehmen kann!!
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Frames mit PHP

Diese Art von Frage wird sehr häufig gestellt. Das Problem ist hier hauptsächlich das Verwechseln von Konzepten und Sprachen bzw. deren Features.

Genauer: du kannst mit PHP Frames nicht ersetzen. PHP ist eine serverseitige Scriptsprache, die Dokumente dynamisch erzeugt, bevor sie zum Nutzer/Browser geschickt werden. PHP erzeugt HTML (oder CSS oder JavaScript oder Bilder oder ...) und das HTML wird dem Nutzer präsentiert.

Was du mit "einfacher" bzgl include() meinst, bezieht sich sicherlich auf die Wiederverwendbarkeit / Modularität deines Quellcodes. Einmal geschrieben und zentral verwaltet wirken sich alle Änderungen z.B. in der Navigations-PHP-Datei auf allen Seiten aus.
Vergleichbares kennst du von Frames: du schreibst einmalig die Navigations-HTML-Datei und wirfst die in ein Frame. Das mag auf den ersten Blick ähnlich sein, ist aber genauer betrachtet ein anderes Prinzip.

Für die Lösung deiner Frage gibt es jetzt mehrere Ansätze, die sich in Aufwand und Ergebnis deutlich unterscheiden:
  1. Du schreibst dein HTML wie gewohnt als komplette Seite, ziehst dann aber einzelne, wiederverwendbare Teile in eigene Dateien raus, die du an deren Stelle per include() einbindest. Vorteil: sehr einfach zu realisieren; Nachteil: Seite wird bei jedem Link komplett neu geladen (ich vermute, das willst du vermeiden)
  2. Du machst das gleiche wie beim vorherigen Punkt, zusätzlich ersetzt du aber die Navigationslinks usw. durch AJAX-Aufrufe, die den gewünschten Content an die gewünschte Stelle einsetzen. AJAX ist die Technik, mit der per JavaScript Dokumente vom Server geholt werden. Vorteil: kein Seiten-Reload; Nachteil: sehr aufwändig - und falls falsch gemacht können Nutzer ohne JavaScript die Inhalte nicht erreichen
  3. Du wirfst den kompletten Content auf eine Seite in verschiedene Container und versteckst diese mit JavaScript (bzw. einfacher mit jQuery). Bei Klick auf die Navigation wird genau dieser Container sichtbar gemacht. Vorteil: kein Seiten-Reload + auch Nutzer ohne JS können die Inhalte sehen; Nachteil: die komplette Seite muss anfangs geladen werden + diese Methode ist auch komplizierter als die erste

Dir als Anfänger empfehle ich Version 1. Ignoriere den Seiten-Reload, daran stört sich kein Nutzer mehr.


Duddle
 

jaderbass

Noch nicht viel geschrieben

AW: Frames mit PHP

Hallo rocksart,

also wie landrobber schon schrieb: Lass die Finger von Frames!

Aber zu deinem Problem: Die Links in deiner Navigation fütterst bei href mit deiner Startseite (ich nehme mal an die heißt "index.html") und hängst gleich hinter der Dateibezeichnung ein Fragezeichen und definierst dann eine Variable mit einem Wert der zu der Inhaltsseite für den Content passt. Das sieht dann ca. so aus:

Für eine Seite die z.B. das Kontaktformular enthält schreibst du:
HTML:
<a href="index.html?seite=kontakt">Kontakt</a>
Für die Seite mit dem Impressum dann
HTML:
<a href="index.html?seite=imp">Impressum</a>
Im Content-Bereich der Seite fragst du nun das $_GET-Array ab und über switch legst du dann fest dass z.B. wenn über GET die Variable seite den Wert "kontakt" hat eben der Inhalt der Kontakt-Seite included wird. Bei "imp" muss dann der Inhalt vom Impressum rein usw.

Für nähere Informationen googelst du halt mal nach "Variablenübergabe per GET" oder "Navigation mit GET" etc.

Ich hoffe das war erstmal hilfreich.
Gruß
Jörg
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben