Hallo Community,
ich baue gerade eine Homepage und stoße da im Moment an meine Grenzen.
Ich skizziere euch erst mal wie arbeite:
Zunächst einmal habe ich das Grundgerüst der HTML-Seite aufgebaut. Vereinfacht ausgedrückt gibt es eine Header.php, eine Seite.php und eine Footer.php.
In die Seite.php lade ich über den include-Befehl zu beginn die Header.php und am Ende des Dokumentes die Footer.php. So macht man es ja auch typischerweise, da sich Header und Footer ja normalerweise nicht ändern und auf jeder Seite gleich aussehen sollen.
Alle Inhalte liegen in einer MySQL-Datenbank. Jeder Datensatz in der Datenbank hat natürlich eine eindeutige ID. In der Header.php baue ich die Verbindung zur Datenbank auf und führe den SQL-Befehl aus.
Jetzt konkret:
In der Header.php habe ich eine Navigation gebaut. Über diese sind die einzelnen Seiten wählbar. Da ja alles dynamisch sein soll, habe ich die Links in der Navigation mit einem Parameter versehen, welcher die jeweilige ID der Seite in der Datenbank darstellt.
Das kann man sich so vorstellen:
Die Header.php beginnt damit, den im Link übergebenen Parameter auszulesen und in eine Variable namens $id zu schreiben.
Dann wird die Verbindung zur Datenbank aufgebaut und im SQL-Code wird der Datensatz mit der übergebenen ID abgefragt.
Die aus der Datenbank geladenen Inhalte können dann über eine while-Schleife in Variablen geladen und diese über einfache echo-Befehle an den dafür vorgesehenen Stellen ausgegeben werden.
Und jetzt das Problem:
Das klappt auch alles wunderbar.... solange man die Navigation benutzt, um sich auf der Homepage zu bewegen.
Wenn man sich z.B. den Link auf eine bestimmte Webseite als Favorit im Browser abspeichert bekommt man beim Laden der Seite natürlich lauter Fehlermeldungen, weil die Variable $id ja nicht befüllt wurde (das wird sie ja nur, wenn man den Link in der Navigation anklickt).
Ich hoffe ich habe mich klar genug ausgedrückt. Sonst bitte einfach fragen. So wie ich es verstanden habe, sollen alle Inhalte ja in der Datenbank liegen. In HTML wird nur das Grundgerüst geschrieben und dieses wird dann per PHP mit den Inhalten aus der DB befüllt. Wie realisiere ich dann aber den Zugriff auf eine meiner Seite über einen Favoriten im Browser oder später über einen Google-Link (die Homepage liegt im Moment noch auf einem Testrechner, kann also im Moment noch über keine Suchmaschine gefunden werden.
Ich weiß, dass Blogs z.B. Permalinks benutzen. Keine Ahnung, ob das hier helfen würden. Ich hätte abgesehen davon auch keinen blassen Schimmer, wie ich diese in der Seiten unterbringen soll.
Bitte um Hilfe, da ich gerade echt auf dem Schlauch stehe..
Beste Grüße
zachy
ich baue gerade eine Homepage und stoße da im Moment an meine Grenzen.
Ich skizziere euch erst mal wie arbeite:
Zunächst einmal habe ich das Grundgerüst der HTML-Seite aufgebaut. Vereinfacht ausgedrückt gibt es eine Header.php, eine Seite.php und eine Footer.php.
In die Seite.php lade ich über den include-Befehl zu beginn die Header.php und am Ende des Dokumentes die Footer.php. So macht man es ja auch typischerweise, da sich Header und Footer ja normalerweise nicht ändern und auf jeder Seite gleich aussehen sollen.
Alle Inhalte liegen in einer MySQL-Datenbank. Jeder Datensatz in der Datenbank hat natürlich eine eindeutige ID. In der Header.php baue ich die Verbindung zur Datenbank auf und führe den SQL-Befehl aus.
Jetzt konkret:
In der Header.php habe ich eine Navigation gebaut. Über diese sind die einzelnen Seiten wählbar. Da ja alles dynamisch sein soll, habe ich die Links in der Navigation mit einem Parameter versehen, welcher die jeweilige ID der Seite in der Datenbank darstellt.
Das kann man sich so vorstellen:
HTML:
<li><a href="seite.php?parameter=1">Käse</a></li>
<li><a href="seite.php?parameter=2">Wurst</a></li>
<li><a href="seite.php?parameter=3">Brot</a></li>
Die Header.php beginnt damit, den im Link übergebenen Parameter auszulesen und in eine Variable namens $id zu schreiben.
PHP:
$id = $_GET["parameter"];
Dann wird die Verbindung zur Datenbank aufgebaut und im SQL-Code wird der Datensatz mit der übergebenen ID abgefragt.
PHP:
$res = mysqli_query($con, 'SELECT * from tblseiten WHERE id = "' . $id . '"');
Die aus der Datenbank geladenen Inhalte können dann über eine while-Schleife in Variablen geladen und diese über einfache echo-Befehle an den dafür vorgesehenen Stellen ausgegeben werden.
Und jetzt das Problem:
Das klappt auch alles wunderbar.... solange man die Navigation benutzt, um sich auf der Homepage zu bewegen.
Wenn man sich z.B. den Link auf eine bestimmte Webseite als Favorit im Browser abspeichert bekommt man beim Laden der Seite natürlich lauter Fehlermeldungen, weil die Variable $id ja nicht befüllt wurde (das wird sie ja nur, wenn man den Link in der Navigation anklickt).
Ich hoffe ich habe mich klar genug ausgedrückt. Sonst bitte einfach fragen. So wie ich es verstanden habe, sollen alle Inhalte ja in der Datenbank liegen. In HTML wird nur das Grundgerüst geschrieben und dieses wird dann per PHP mit den Inhalten aus der DB befüllt. Wie realisiere ich dann aber den Zugriff auf eine meiner Seite über einen Favoriten im Browser oder später über einen Google-Link (die Homepage liegt im Moment noch auf einem Testrechner, kann also im Moment noch über keine Suchmaschine gefunden werden.
Ich weiß, dass Blogs z.B. Permalinks benutzen. Keine Ahnung, ob das hier helfen würden. Ich hätte abgesehen davon auch keinen blassen Schimmer, wie ich diese in der Seiten unterbringen soll.
Bitte um Hilfe, da ich gerade echt auf dem Schlauch stehe..
Beste Grüße
zachy