![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.627
|
Wie übergebe ich Daten per URL?
Schritt 1 Zunächst einmal sollen einige grundlegende Informationen vermittelt werden. PHP bietet die Möglichkeit Variableninhalte von einer Seite auf die nächste zu übernehmen. In diesem Tutorial beschäftigen wir uns mit der Variablenübergabe über die URL. Tutorials zu anderen Möglichkeiten findest Du hier: Da PHP serverseitig abläuft, interessiert es nicht, ob eine Datei sich selbst oder eine zweite Datei aufruft. In beiden Fällen werden Informationen an den Server geschickt, der diese auswertet und dann, je nach Ergebnis der Auswertung eine Ausgabe an den Client (in unserem Fall der Browser) schickt. Schritt 2 Wie schafft man es jetzt dem Server zu "sagen", dass man Informationen auf mehr als nur einer Seite nutzen möchte? Und wie schafft man es dann die Informationen wieder abzurufen? Dies geht mittels einer simplen Konstruktion. Ein Hyperlink, der Informationen mit der URL weiterversenden soll hat folgende Grundstruktur Code:
http://example.com/seite.php?variable=wert Wie greifen wir nun aber auf die Informationen zu, die an die Datei "seite.php" übergeben wurden? Ich möchte die Anwendung mit Hilfe eines kleinen Beispiels erläutern. Zunächst verwenden wir zwei Dateien. In der ersten Datei (info_versenden.html) steht einfach nur ein Link mit obiger Struktur. Diese Datei muss keinerlei PHP-Code enthalten und kann somit auch die Endung .html haben. Code:
<!# Code in der Datei: info_versenden.html #> <a href="info_abrufen.php?zahl=12">Daten per URL übertragen</a> PHP-Code:
Wir greifen, wie im Beispiel ersichtlich, mit Hilfe des superglobalen Arrays $_GET auf die übergeben Variable zu. Schauen wir uns jetzt noch einmal die Struktur des Hyperlinks an. Es interessiert uns jetzt nur der Teil hinter dem Fragezeichen. Code:
variable=wert Jetzt wissen wir, dass wir über ein Array auf die Informationen zugreifen können. Der Link ließe sich also in seiner prinzipiellen Grundstruktur auch folgendermaßen nach dem Fragezeichen schreiben. Code:
schluessel=wert Schritt 3 Es lassen sich selbstverständlich mehrere Variablen in der URL übergeben. Die einzelnen Daten werden durch ein & getrennt Code:
http://example.com/seite.php?var1=wert1&var2=wert2&...&varX=wertX Die Anzahl einer der Zeichen einer URL ist auf 1024 begrenzt. Es ist aber davon abzuraten diese Zahl überhaupt annähernd zu erreichen, da die Übersichtlichkeit doch stark leidet. Schritt 4 Wir wollen nun das obige Beispiel so modifizieren, dass wir einen kompakten Code erhalten, der übersichtlich ist und die Funktionsweise leicht verständlich erklärt. In Schritt 1 wurde angedeutet, dass es keinen Unterschied zwischen einem erneuten Laden der gleichen Seite und einem Aufruf einer anderen Seite gibt. Diese Tatsache machen wir uns im folgenden Beispiel zu nutze. PHP-Code:
Folgt man diesem, so ruft sich das Script selbst auf und die Bedingung wird dieses Mal erfüllt. Im if-Zweig wird nun das Produkt aus der übergebenen Zahl und dem übergebenen Faktor ausgegeben. Hier bietet es sich an auch einfach mal per Hand die Zahlen in der Adressleiste des Browsers abzuändern und die Seite zu aktualisieren. Schritt 5 Ich möchte noch kurz auf die anderen Varianten eingehen, die theoretisch zur Verfügung stehen, um auf die Variablen in der URL zuzugreifen. Bis zur PHP-Version 4.1.0 war das superglobale Array $_GET nicht bekannt. Bis dahin verwendete man das Array $HTTP_GET_VARS. Die Arrays enthalten zwar die gleichen Informationen, haben aber unterschiedliche Sichtbarkeitsräume bzw. Gültigkeitsbereiche. $_GET ist überall verfügbar, so z.B. auch in Funktionen ohne das innerhalb dieser explizit mit dem Schlüsselwort 'global' gearbeitet werden muss. Dies ist genau der Nachteil von $HTTP_GET_VARS. Es ist zwar global, aber nicht superglobal. Probiere mal den unteren Code aus und vergleiche Deine erwartete Ausgabe mit der tatsächlichen Ausgabe. PHP-Code:
Code:
$HTTP_GET_VARS["var"]: hallo $_GET["var"]: hallo In der Funktion $HTTP_GET_VARS["var"]: hallo $_GET["var"]: hallo Code:
$HTTP_GET_VARS["var"]: hallo $_GET["var"]: hallo In der Funktion $HTTP_GET_VARS["var"]: $_GET["var"]: hallo Aber wozu die Mühe? Kurz gesagt ist $HTTP_GET_VARS seit der Einführung von $_GET unnötig geworden. Es gibt noch eine weitere Möglichkeit auf die Variablen in der URL zuzugreifen. Dies erfordert allerdings die Aktivierung der Einstellung register_globals. Ist dies der Fall, so sind die Variablen ebenfalls im globalen Sichtbarkeitsbereich des Scriptes verfübar und man kann einfach nach diesem Muster auf sie zugreifen. PHP-Code:
Ich bitte darum folgenden Beitrag ausführlich und intensiv zu lesen: Schritt 6 Solltet Ihr Fragen zu dem Tutorial haben, so schreibt bitte einen Beitrag im PHP-Forum mit einem Verweis auf dieses Tutorial. Danke. Schritt 7 Weiterführende Informationen findest Du z.B. hier: Geändert von Jann Hendrik (03.07.2008 um 10:39 Uhr). Grund: link angepasst |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Hardware-RAID-Lösung | robo47 | Plauderecke | 29 | 26.12.2007 04:49 |
| SessionID per Url auf Portal-Seite | Artemis | Fragen ans Team | 7 | 09.07.2007 20:25 |
| [JAVA] Wie man aus Java mit einem PHP-Script kommuniziert | sparrow | Tutorials | 0 | 25.03.2006 22:24 |
| post Daten weiter leiten als "POST" per header(&qu | schifti | PHP-Programmierung | 12 | 22.03.2005 15:42 |
| [PHP] Daten per Session übergeben | Ben | Tutorials | 0 | 14.12.2004 14:34 |