Welche Navigationstechnik?
Torsten
- php
Hallo,
ich bin eher der Programmiere statt Designer. Jetzt stellt sich für mich die Frage, welche Navigationstechnik die bessere ist. Mein Website-Konstrukt sieht zur Zeit so aus: eine index.php, die Unterseiten werden in einen bestimmten Bereich der Site mittels index.php?page=seite.php inkludiert. Mein Ziel war es den Inhalt dynamisch zu generieren. Banner, Footer und Navigation statisch. Was ich an dieser Methode sehr gut finde, die Unterscheiden brauchen nicht mit dem HTML-Grundgerüst ausgestattet werden, da diese mittels include() in das bereits bestehende Hauptlayout inkludiert werden.
Gibt es andere, bessere Methoden?
Gruß
Torsten
Hallo allerseits!
Ich möchte auch die angesprochene Methode des Inhalte ladens in eine index.php per include nutzen.
Für mich ergibt sich dabei aber folgendes Problem:
Die zu ladenen html-Dateien kommen alle mit komplettem Grundgerüst daher. Heißt im Klartext: Ich habe das Grundgerüst der index.php und irgendwo in einer Tabelle die im Bodybereich der index.php hängt erscheint auf einmal ein komplett neues Grundgerüst, was im Code nicht so schick aussieht.
Hat zwar auf meinen Browsern funktioniert, weiß aber nicht wie dass bei älteren Versionen o. anderen Browsern ist. Abgesehen davon ist es nicht gerade elegant.
Nun möchte ich versuchen die Html-Dateien per fopen() zu laden und dann den Inhalt im Bodytag herraustrennen und nur diesen in einer Variable Ausgeben.
Frage1: Ist dass die richtige Lösung oder gehts noch eleganter?
Frage2: Wie bekomme ich nur den Inhalt im Body raus? Welche Stringfunktionen Muss ich verwenden? Wäre über einen Codeschnipsel dankbar.
###Zu inkludierende Html-Datei###
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>TEST</title>
</head>
<body>
<p>TEST</p>
<p>Hallo Du!</p>
</body>
</html>
##Ende der Datei##
Zu beachten wäre wohl auch, dass es mal passieren kann, dass der Body-Tag weitere Parameter enthält.
Liebe Grüße
Björn
Hi,
Für mich ergibt sich dabei aber folgendes Problem:
Die zu ladenen html-Dateien kommen alle mit komplettem Grundgerüst daher. Heißt im Klartext: Ich habe das Grundgerüst der index.php und irgendwo in einer Tabelle die im Bodybereich der index.php hängt erscheint auf einmal ein komplett neues Grundgerüst, was im Code nicht so schick aussieht.
Wieso entfernst du nicht einfach die Grundgerüste aus deinen Dateien?
Hat zwar auf meinen Browsern funktioniert, weiß aber nicht wie dass bei älteren Versionen o. anderen Browsern ist. Abgesehen davon ist es nicht gerade elegant.
Und vorallem wäre das auch kein Valider-Code!
Nun möchte ich versuchen die Html-Dateien per fopen() zu laden und dann den Inhalt im Bodytag herraustrennen und nur diesen in einer Variable Ausgeben.
Ich glaube das beeindrächtigt stark auf die Performance.
Gruß
Torsten
Ich glaube das beeindrächtigt stark auf die Performance.
^nehme ein d weg und füge ein t hinzu ;-)
Ahoi björn,
Die zu ladenen html-Dateien kommen alle mit komplettem Grundgerüst daher. Heißt im Klartext: Ich habe das Grundgerüst der index.php und irgendwo in einer Tabelle die im Bodybereich der index.php hängt erscheint auf einmal ein komplett neues Grundgerüst, was im Code nicht so schick aussieht.
Nun möchte ich versuchen die Html-Dateien per fopen() zu laden und dann den Inhalt im Bodytag herraustrennen und nur diesen in einer Variable Ausgeben.
daher vermute ich das es sehr viele seiten sind, oder sie von außerhalb
kommen. in ersterem fall würde ich ein script schreiben welche alles bis
auf den inhalt des body-tags "rausschneidet" und die dateien dann
speichert, das ganze läßt du dann über alle seiten laufen. und danach
ist dein problem gelöst und für später hast du weniger performence
probleme. soltlen die dateien von außerhalb kommen sprich mit dem besitzer.
MfG
Hallo,
Hi,
ich bin eher der Programmiere statt Designer.
ich bin in beidem schlecht ;-)
Jetzt stellt sich für mich die Frage, welche Navigationstechnik die bessere ist.
Trotz nicht gerade guten Vorraussetzungen (siehe oben) würde ich zum
navigieren Hyperlinks bevorzugen. Sorry...cnr.
Mein Website-Konstrukt sieht zur Zeit so aus: eine index.php, die Unterseiten werden in einen bestimmten Bereich der Site mittels index.php?page=seite.php inkludiert.
Solltest Du die zu inkludierende "page" wirklich so übergeben bist Du noch schlechter als ich.
Anders ge(sagt/fragt) wenn ich auf Deiner Seite
www.deinedomain.de/index.php?page=http://www.deinedomain.de
in meinen Browser eingebe, könnte sie sich immer wieder sich selbst aufrufen lassen :-).
Wenn ja eigentlich eher schlecht und Du solltest alles was inkludiert werden soll vorher prüfen.
Du solltest generell alles was von "aussen" kommt prüfen!
Mein Ziel war es den Inhalt dynamisch zu generieren. Banner, Footer und Navigation statisch. Was ich an dieser Methode sehr gut finde, die Unterscheiden brauchen nicht mit dem HTML-Grundgerüst ausgestattet werden, da diese mittels include() in das bereits bestehende Hauptlayout inkludiert werden.
Und Ziel erreicht?!
Gibt es andere, bessere Methoden?
Nein
Gruß
Torsten
Gruß zurück
Chris
Hi,
Trotz nicht gerade guten Vorraussetzungen (siehe oben) würde ich zum
navigieren Hyperlinks bevorzugen. Sorry...cnr.
jap, dass tue ich...
Solltest Du die zu inkludierende "page" wirklich so übergeben bist Du noch schlechter als ich.
Anders ge(sagt/fragt) wenn ich auf Deiner Seite
www.deinedomain.de/index.php?page=http://www.deinedomain.de
in meinen Browser eingebe, könnte sie sich immer wieder sich selbst aufrufen lassen :-).
Wenn ja eigentlich eher schlecht und Du solltest alles was inkludiert werden soll vorher prüfen.
Du solltest generell alles was von "aussen" kommt prüfen!
gegen solche Manipulationen habe ich gesorgt. Mir gings ja auch nur ums Prinzip! Aber mich würde es gerne mal interessieren wie du gegen solche Eingriffe vor gehst?
Und Ziel erreicht?!
ich denke doch...
Gibt es andere, bessere Methoden?
Nein
nur ein einfaches Nein?
Gruß
Torsten
Hi,
gegen solche Manipulationen habe ich gesorgt.
Mir gings ja auch nur ums Prinzip!
Gut :-), ich krieg bei so URls wie Du sie als Beispiel hattest immer die Krise ( ... und manch mal das Bedürfniss den Server arbeiten zu lassen hehe ;)).
Aber mich würde es gerne mal interessieren wie du gegen solche Eingriffe vor gehst?
Naja einfaches gucken was da nun übergeben wird und Übergebenes vergleichen, je nach Umfang über simples Array oder wenns klein und schnuckelig ist switch Abfragen.
Und Ziel erreicht?!
ich denke doch...
Noch mal gut.
Gibt es andere, bessere Methoden?
Nein
nur ein einfaches Nein?
Jein ;-), also vom Grundprinzip her wüsste ich keine bessere Methode um Inhalte in eine egal wie geartete Form des Drumrum einzubringen.
Ob Du jetzt include(), require() oder irgend einen anderen Befehl zum Einbinden nimmst ist dem Grundprinzip erst mal schnuppe.
Zumindest bin ich der Meinung dass es für überschaubare Projekte keine Alternativen gibt ... und ein CMS für (mal rein fiktiv) zwanzig Seiten ist mir persönlich zu overdressed ;)
Gruß
Torsten
Gruß Chris
Hi,
Gut :-), ich krieg bei so URls wie Du sie als Beispiel hattest immer die Krise ( ... und manch mal das Bedürfniss den Server arbeiten zu lassen hehe ;)).
hehe... :-)
Naja einfaches gucken was da nun übergeben wird und Übergebenes vergleichen, je nach Umfang über simples Array oder wenns klein und schnuckelig ist switch Abfragen.
ok, so hab ich's auch gemacht.
Jein ;-), also vom Grundprinzip her wüsste ich keine bessere Methode um Inhalte in eine egal wie geartete Form des Drumrum einzubringen.
Ob Du jetzt include(), require() oder irgend einen anderen Befehl zum Einbinden nimmst ist dem Grundprinzip erst mal schnuppe.Zumindest bin ich der Meinung dass es für überschaubare Projekte keine Alternativen gibt ... und ein CMS für (mal rein fiktiv) zwanzig Seiten ist mir persönlich zu overdressed ;)
Ich denke mir halt nur, bei etwas größeren Projekten könnte die Performance etwas drunter leiden. In meiner index.php z.B., werden einige Klassen(Datenbanken...) und Funktionen(Formmailer...) je nach dem ob sie gebraucht werden eingebunden. Des Weiteren sind dort einige define's und meine Andimissbrauch Funktion deklariert. Wenn jetzt ein Link in der Navigation betätigt wird, wird ja die index.php neu geladen, und mit ihr, alles was dort deklariert wurde.
Gruß
Torsten
Ich denke mir halt nur, bei etwas größeren Projekten könnte die Performance etwas drunter leiden.
Abgesehen davon dass ich kein großes Licht in Sachen PHP (... und jeglicher anderen Programmier Sprache) bin und meine Kenntnisse der Serverreaktionen auch eher mau sind, stimme ich dem mal zu.
Angesichts dass man ja viel inkludieren kann (Html Fetzen, Funktionen, schiessmichtot ...) kann man es zwar nicht verallgemeinern, aber mich würde auch interessieren wie es sich nach dem zweihundertstem include damit verhält.
Deswegen habe ich in der Hoffnung auf fähige Forumsuser mal den Titel geändert!
In meiner index.php z.B., werden einige Klassen(Datenbanken...) und Funktionen(Formmailer...) je nach dem ob sie gebraucht werden eingebunden. Des Weiteren sind dort einige define's und meine Andimissbrauch Funktion deklariert.
Naja, was nur bei Bedarf eingebunden werden soll ist ja nicht schlimm, wenn man da ein wenig "geplant" rangeht sollte es nicht so das Problem sein.
Formmailer oder vorher die Prüfung versuche ich weitestgehend auszugliedern, also duch Aufruf einer neuen Datei, und reagiere dann nur auf die Rückgabe Werte.
Ob dass nun gescheiter oder gar performanter ist vermag ich zwar nicht zu sagen, aber man hat es sich so angeeignet und es ist übersichtlicher (also rein subjektive empfunden) ?!
Übrigens sehr löblich das Andi nicht missbraucht werden soll ;)
Wenn jetzt ein Link in der Navigation betätigt wird, wird ja die index.php neu geladen, und mit ihr, alles was dort deklariert wurde.
Ja klar, aber irgendwie musst Du Deine Parameter verarbeiten und die gewünschten Daten beisammen kriegen?!
Es hält dich aber auch niemand davon ab neben Deiner index.php eine seite1.php zuerstellen und dann dort das für "seite1" relevante reinzupacken.
Gruß
Torsten
Gruß Chris
Hi,
ja würde mich auch freuen wenn jemand mit Wissen Licht ins Dunkle bringt...
Gruß
Torsten