PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seitenerstellung - grundlegende Vorgehensweise


CFJH
25.09.2006, 22:11:40
Hi,
Ich möchte meine Homepage auf Basis von PHP überarbeiten. Momemtan bin ich noch in der Brainstorming-Phase und mache einzelne Tests.
Ich stelle mir dabei ein klassisches Layout vor: links ein aufklappbares Menü (ähnlich wie in einem Verzeichnisbrowser), rechts dann die eigentlichen Seiten. Das Ganze soll nicht mit Frames gelöst werden, sondern in einer HTML-Seite, die entspr. aufgeteilt wird. Weiterhin möchte ich gezielt Seiten aus meiner HP verlinken können (zB. in einem Forum), daher sollen die entspr. Parameter über die URL-Zeile übergeben werden (also GET-Methode).

Mein Problem ist jetzt das Bauen dieser URL-Zeile. In der Hauptseite wird es u.a. ein Archiv geben, durch das man tages-/monats- oder jahresweise blättern kann. Nun sollen aber diese Datumseinstellungen nicht verloren gehen, wenn ich in dem Menü einen Eintrag auf- oder zuklicke, das Menü muß also auch alle Parameter kennen, die die Hauptseite benötigt. Anders herum genauso, blättere ich auf den nächsten Tag, sollen die offenen Menüpunkte nicht wieder zugehen.

Wie gehe ich das am geschicktesten an ?
Jürgen

einsteigi
26.09.2006, 01:20:35
Hallo,
verstehe ich dich richtig, du möchtest Parameter von einer Seite zur andern weitergeben (Datum)?

Am einfachsten ist es wenn du es mi Sessions machst. also

session_start():
$_SESSION['tag'] = hier holst du Parameter aus dem Archiv (Tag, Monat...);

Bei älterer Php-Version musst du evt SESSION_REGISTER nehmen.

Nun musst du die Session nur noch an die URL hänge oder sparst dir das auch,
müsstest dann aber dem Surfer mitteilen, er soll Cookies aktivieren.
Oder du teilst es ihm schon vorher mit, ja nach dem.

feuervogel
26.09.2006, 12:18:56
es heißt server, man muss ihm in der regel nicht mitteilen, da die session-id in einem cookie gespeichert wird und session_register() ist ziemlich veraltet.

CFJH
26.09.2006, 13:10:10
Das Problem ist, daß der Inhalt der Hauptseite wechselt und dann unterschiedliche Variablen benötigt. Das Archiv braucht 'Tag','Monat' und 'Jahr', die nächste Seite enthält aber zB. ein Fotoalbum und will 'AlbumId','GruppenId' und 'BildId'. Bei zukünftigen Seiten weiß ich noch nicht einmal die Parameter.
Meine momentane Idee ist, daß ich die URL-Zeile selber parse. Entweder gibt es eine PHP-Funktion, die mir alle übergebenen Parameter liefert (mit Name und Wert) oder ich nehme das selbst in die Hand. PHP-seitig übergebe ich eine lange Zeile (zB. mit einem '+' statt dem üblichen '&' getrennt). Das jeweilige Modul sucht sich dann seine Parameter 'raus und ersetzt die entsprechend.

es heißt server, man muß...
Momentan kann ich nicht viel damit anfangen. Gibt es ein Beispiel, ich kann keinen Befehl finden, der irgendwo server enthält (bis auf einen im MySql-Bereich) ?
Jürgen

feuervogel
26.09.2006, 13:33:40
Entweder gibt es eine PHP-Funktion, die mir alle übergebenen Parameter liefert

so ähnlich: das was du suchst, ist das suberglobale array $_GET

da du anscheinend recht wenig ahnung von dem ganzen thema hast (ist nicht böse gemeint) seien dir folgende seiten ans herz gelegt:

http://tut.php-q.net/
http://faq-php.de/

CFJH
27.09.2006, 13:48:24
da du anscheinend recht wenig Ahnung von dem ganzen thema hast ....
Das stimmt. Ich habe zwar schon viel in Pascal oder C (++) programmiert und bin mit grundlegenden Programmiertechniken vertraut, PHP speziell ist für mich aber Neuland (beschäftige mich seit ca. 6 Monaten damit, aber nur in meiner Freizeit für ein paar Std/Woche). Mein erstes Projekt war/ist die Visualisirung meiner Wetterdaten: Hier (http://www.wetterstation-porta.info/arch/arch.php)

Zurück zum Thema: mit dem globalen _GET würde das funktionieren, verwende ich jetzt auch schon, sehe da aber zwei Probleme/Unklarheiten:
1. ich finde keine Funktion, um den Namen des Parameters zu erhalten (lediglich die Suche mit der 'foreach'-Schleife, mit der man sich auch den Namen in eine Variable übergeben lassen kann)
2. Solange ich normale Links habe (bZ. im Menü oder bei den Blätterfinktionen), kann ich die URL einfach bauen und entspr. bei dem Link angeben. Das Archiv enthält aber auch ein (Get-)Formular. Wie kann ich da die 'fremden' Variablen übergeben - mit hidden inputs ?
Ist das überhaupt der 'richtige' Lösungsweg oder sollte man das ganz anders angehen (zB mit Sessions wie schon oben genannt) ?

Jürgen

Indyk
27.09.2006, 13:58:39
1. ich finde keine Funktion, um den Namen des Parameters zu erhalten (lediglich die Suche mit der 'foreach'-Schleife, mit der man sich auch den Namen in eine Variable übergeben lassen kann)

was das angeht, so hoffe ich, wird dir array_keys (http://de.php.net/manual/en/function.array-keys.php) weiterhlefen

CFJH
28.09.2006, 13:34:13
meine geplante Vorgehensweise ist jetzt folgende:
Ich verwende das globale Array _GET um an alle Parameter zu kommen. Zum Manipulieren von einzelen Parametern baue ich entspr. Funktionen in einer Include-Datei, die von allen Modulen verwendet werden kann.

Zum einen brauche ich eine Funktion, die die URL für einen klassischen HTML-<LINK> erzeugt. Ich übergebe ein Array mit den geänderten Parametern, die das aktuelle Modul betreffen (Array mit Parametername und Wert). Die Funktion baut nun aus dem _GET-Array und dem übergebenen Array die URL-Zeile, indem die übergebenen Parameter entspr. ersetzt oder neu hinzugefügt werden.

Eine zweite Funktion muß das ganze für ein Input-Form machen. Hier geht es vorallem darum, die dem aktuellen Modul fremden Parameter zu erkennen und diese dann als Hidden Inputs mit in das Formular einzubauen, damit diese dann unverändert 'durchgereicht' werden.

nach wie vor ist mir aber unklar, ob das die gängige Vorgehensweise ist. Webseiten mit einem zwei- oder mehrspaltigem Layout habe ich schon öfters gesehen, aber wie wird es da gelöst ?