Parameterübergabe zwischen Webseiten

  • Hallo,


    ich hätte da mal ne frage.... was bedeutet wenn ich zb einen link hab der auf eine seite wie /wars.php?action=details&.... verlinkt... was bedeutet das nach dem ? ????
    wo kann ich dazu mehr info bekommen ?????
    dank im vorraus


    [Edited by hetfield on 03-20-2001 at 10:53 AM GMT]

  • Hi Sharrow!


    Es gibt mehrere Möglichkeiten, Werte innerhalb mehrerer Seiten zu verwenden.


    Also, fangen wir mal von vorne an:


    Es gibt insgesamt 4 Möglichkeiten: GET, POST, Cookies und Sessions, wobei die beiden zuletztgenannten nur zum Einsatz kommen, wenn die Werte in mehr als 2 Seiten verfügbar sein sollen.


    GET: Diese Methode erkennst du, wenn an der URL hintendran noch z.B. steht ?varname1=testwert...


    Bei GET wird die URL von den Parametern mit einem Fragezeichen (?) getrenn. Danach können ein oder mehrere Parameter kommen, wobei der Aufbau wie folgt ist: NAMEDERVARIABLE=WERTDERVARIABLE . Mehrere Parameter werden durch ein kaufmännisches Und (&) voneinander getrenn.


    Die GET-Methode sollte nur selten verwendet werden, da GET viele Nachteile hat:
    * Die Maximal-Länge der Parameter ist relativ kurz (abhängig vom Browser und Webserver)
    * Bei den GET-Parametern sind viele Zeichen nicht erlaubt, und müssen vorher umgewandelt werden
    * Zugangskennungen (Benutzernamen, Passwörter) sollten NIEMALS per GET übermittelt werden, da diese dann bei einem eventuellen Proxy-Server auch einfach so drinnenstehen



    POST: Diese Methode wird nur von Formularen genutzt, und hat sehr viele Vorteile


    * Maximale Datenmenge ist zwar begrenzt, jedoch ist diese Begrenzung relativ hoch gesetzt (ist auch wiederum abhängig vom Web-Server und vom Browser)
    * Relativ sicher: Die Daten die per POST versendet werden sind nicht z.B in Log-Files von Proxy-Servern sichtbar, da diese Daten mit einem speziellen Kodierungsverfahren gesendet werden
    * Werte die per POST gesendet werden dürfen SÄMTLICHE ASCII-Zeichen enthalten. Eine zusätzliche Konvertierung fällt aus
    * POST ist die einzige Methode um Datei-Uploads über den Browser zu realisieren



    Sessions und Cookies haben nichts mit direkter Wert-Übergabe zu tun, denn die Daten müssen zuerst im Script vorhanden sein, bevor sie gespeichert werden können (das heißt, die Daten müssen zuerst an ein Script geschickt werden, das dann die Daten in der Session oder dem Cookie speichert).


    Sessions: Ich spreche hiermit das Session-System an, das mit PHP 4.x eingeführt wurde, da ich mit anderen Sessios-Systemen keine Erfahrungen habe.


    Wie funktionieren Sessions eigentlich? Diese Frage lässt sich leicht beantworten: Beim Aufruf der Webseite wird eine eindeutige Session-Id erstellt. Für diese Session wird in eime speziellen Verzeichnis des Servers eine Datei angelegt. Der Benutzer bekommt diese Session-ID übermittelt, und identifiziert ihn eindeutig während des gesamten Besuches einer Webseite.
    Die Session-ID wird beim Benutzer mit einer der beiden Methoden gespeichert:
    1.: Wenn der Browser Cookies akzeptiert, wird die Session-ID in einem Cookie gespeichert.
    2.: Falls der Browser keine Cookies akzeptiert, wird a) die Session-ID als Parameter an jede URL angehängt bzw. b) als Hidden-Feld in jedes Formular eingefügt (komplett automatisch!)


    Nun kann man eine Variable in dieser Session speichern, und jederzeit darauf zugreifen.


    Vorteile der Sessions:
    * Betriebssystem- und Browser-Unabhängig
    * Höchste Sicherheit (da die Daten selbst ja nur auf dem Server gespeichert wird)
    * Leichte Realisierung von komplexen Projekten (Online-Shops, etc...)
    * Die Anzahl der Daten die gespeichert werden können sind nur vom Speicherplatz auf der Festplatte des Servers beschränkt



    COOKIES: Sollten nur wenn unbedingt notwendig benutzt werden. Im Normalvoll sollte sich aber eine bessere Lösung finden lassen.


    Bei Cookies wird dem Browser vom Server vor dem eigentlich Dokument ein spezieller Header übermittelt. Dieser Header enthält den Namen der Variable, und den dazugehörigen Wert. Der Browser speichert nun diese Daten + der Domain von der sie übermittel wurde in einem bestimmten Verzeichnis des Browsers. Ab sofort werden bei jedem Aufruf einer Seite dieser Domain vom Browser zusätzlich die Daten sämtlicher Cookies die dieser Domain gehören übermittelt.


    Cookies haben sehr viele Nachteile:


    * Browser unterstützt unter Umständen keine Cookies
    * Der Benutzer hat in seinem Browser Cookies möglicherweise deaktviert
    * Je mehr Daten in den Cookies sind, um so länger dauert der Aufruf der Webseite, da die Daten jedesmal vom Browser an den Server gesendet werden
    * Mittelmäßige Sicherheit (da die Daten nicht serverseitig gespeichert zu werden)



    So, das wars mal fürs erste.


    Hoffe geholfen zu haben...falls es noch Fragen gibt, bitte einfach melden ;-)

    Keep the faith ;)

  • Jetzt nur noch lesen :)


    ROB

    Das "Traum-Projekt" in 2001 gegründet und Ende 2016 in die Hände von Geronimo gegeben.

    "Es war eine geile und lehrreiche Zeit, die mein Leben nachhaltig verändert hat"

  • ja, schreibfaul ist doc.silizium ganz sicher nicht, soviel steht vorläufig mal fest... :)

    || manchmal genügt ein wechsel der blickrichtung um dinge zu verstehen ||

  • Hallo,


    ich habe zu diesem Thema noch eine Frage.


    Nachdem der Parameter übergeben wurde:


    PHP
    1. http://www.clausgrm.com/home/develop.php?section=home


    würde ich gerne wissen, wie die section in der Zieldatei ausgelesen wird.


    Ich denke, dass in der develop.php eine Abfrage sein muss, um die sections auszulesen und diese dann an eine URL weiterzuleiten.


    wie würde diese lauten?


    Nehmen wir an, dass man 15 Seiten hat, die per section aufgerufen werden sollen, muss man die Abfrage dann 15 mal schreiben und jedes mal eine url per hand zuweisen?


    Ich würde mich freuen, wenn ihr hier mal ein Quellcode-Beispiel posten könntet, indem man auch sieht wie man solche links "verarbeitet":


    1.)


    PHP
    1. http://www.clausgrm.com/home/develop.php?section=home&sub=beschreibungen&desc=java



    2.)


    PHP
    1. http://www.clausgrm.com/home/develop.php?section=ausbildung&sub=information&desc=x&y=d&j=o&l=a


    Ich hatte es schon mal so ähnlich, jedoch habe ich damit aufgehört, da eine riesige, unübersichtliche if/else struktur rauskam, die irgendwann sehr fehlerabhängig wurde.


    Vielen Dank im Vorfeld.


    Schönen Gruß
    Claus