• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Die Fragezeichen Urls

T!P-TOP

Mitglied
Hallo Leute,

hätte da mal ein paar Fragen zu diesen ?-Urls. Also erstmal - was genau bringen die einem? Ist das vielleicht flexibler?

Habe mir überlegt wie man eine Homepage damit aufbauen könnte:
will man beispielweise einen Link auf die startseite setzten, hängt man einfach an die index.php noch eine variable mit dem Wert(String) Startseite an, bspw so:

<a href="http://www.domain.at/index.php?action=startseite">Startseite</a>

Auf der index.php prüft man jedesmal den Inhalt der variable action, ist der Inhalt startseite, wird zB eine startseite.tpl in die index.php eingebunden(Includet).

Die startseite.tpl beinhaltet zum Beispiel nur den Content, da der Rest der Homepage (Meta Tags, grundgerüst etc) sich ja nie ändert (der steht immer gleich in der index.php). Der content (sagen wir mal ein div) wird einfach in den body tag beim aufrufen der variable action includet. Somit brauch man in den Templates nur Sahcne wie:

<div id="content">
//Inhalt
</div>

...rein schreiben.

Das restlich html Grundgerüst steht ja schon in der index.php Datei.

Mittels if Bedingungen frag ich einfach auf der index.php ab, welchen inhalt die variable action hat und kann somit dem User die richtige tpl Datein anzeigen.

Stimmt das soweit? Gibt es da Sicherheitslücken? Muss man auf besitmmte Dinge achten, die einem eventuell zum Verhängnis werden könnten?

Für eine Homepage stell ich mir das jetzt nicht so praktisch vor, für einen internen Bereich aber, in dem man mit session arbeitet ist das sicherlich viel flexibler.

Grüße,
T!P-TOP
 
Das nennt sich Front-Controller-Layout. Die Erklärungen dazu lesen sich teilweise kompliziert, aber im Grunde bedeutet es hier einfach: Jeder Request (also jede Nachfrage an den Server, eine Seite zu generieren) wird an dieselbe Stelle geleitet und dort verarbeitet (zum Beispiel in der index.php). Anhand von weiteren Parametern wird festgelegt, welcher Inhalt ausgegeben werden soll.

Diese Parameter können GET-Parameter aus dem Query-Part des URL sein (alles ab dem Fragezeichen) oder auch der URL selbst, wenn du Rewriting einsetzt.

Die allermeisten programmierten Webseiten setzen auf diese Vorgehensweise und leiten einfach alle eingehenden URLs an ein einziges Script weiter, das dann den Inhalt generiert. Davon bekommt der Besucher überhaupt nichts mit.

Die Vorgehensweise, die du geschildert hast, passt soweit.

Gibt es da Sicherheitslücken? Muss man auf besitmmte Dinge achten, die einem eventuell zum Verhängnis werden könnten?

Ja, es gibt immer irgendwas zu beachten. Wenn du etwa deine URLs nach dem Schema index.php?page=test.php aufbaust, könnte zum Beispiel jemand versuchen, index.php?page=../config.php oder ähnliches aufzurufen. Das kann oder kann nicht zu Problemen führen.

Allgemein ist die Frage schwer zu beantworten.

Für eine Homepage stell ich mir das jetzt nicht so praktisch vor, für einen internen Bereich aber, in dem man mit session arbeitet ist das sicherlich viel flexibler.

Meines Erachtens ist es die einzige sinnvolle Vorgehensweise, eine Internetseite zu erstellen. Die alternative Möglichkeit wäre es wohl, auf jeder Einzelseite einmal header.php und einmal footer.php einzubinden. Aber ich bin mir relativ sicher, dass das von vielen Leuten nur deshalb bevorzugt wird, weil sie nicht wissen, dass sie per Rewriting auch bei einem Front-Controller-Design hübsche URLs erzeugen können, die nicht alle nach dem Schema index.php?action=… aufgebaut sind.
 
Zuletzt bearbeitet:
Es sind Get-Parameter, mit deren Hilfe du Werte übermitteln kannst. DU kennst sicherlich POST zum übermitteln von Formularfeldern. Ähnlich ist es bei GET. Ein GET Paremter kann z.B. sehr nützlich sein, wenn man eine Profilseite darstellen möchte. Im Beispiel würde es wie folgt z.B. aussehen können: domain.de/profil.php?id=50. Dann würde z.B. ein Nutzer mit der ID 50 angezeigt werden. Bei öffentlichen Profilen ist das sehr hilfreich, da man durch das Ändern der ID z.B. zu einem anderen Profil eines Nutzers mit einer anderen Identifikationsnummer gelangt. Für interne Bereiche, wo nicht jeder Zugriff haben kann, ist es eher nicht geeignet, wobei man natürlich auch vorher noch die ID mit der ID aus der Tabelle abgleichen kann, die die aktuelle Session hat.
 
Zurück
Oben