This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Es könnte jetzt echo $stunde;?>: echo $minute; ?> Uhr sein!
Abbildung 5.1: Das Ergebnis der Übergabe im Browser
Die Variablen können sofort für die Ausgabe verwendet werden. Versuchen Sie einmal folgendes: $minute=47; $stunde=11; $begruessung="Christian"; ?> &minute= echo $minute; ?>&begruessung= echo $begruessung;?>"> Link
Kapitel 5 • Parameterübergaben in PHP
69
Dieses Beispiel setzt mit Echo-Funktionen im Anker den Link zusammen. Der Browser erhält folgenden Hyperlink-Code vom Webserver: Link
Diese Art der Übergabe klappt nur in bestimmten Fällen. Beim folgenden Link werden die Übergabeparameter beispielsweise fehlerhaft übergeben: Link
Dieser Link wird nicht funktionieren. Sie werden im Browser folgendes sehen:
Abbildung 5.2: Ein Fehler bei der Übergabe
Die GET-Übergabeparameter konnten nicht richtig übertragen werden. Da das "&" als Trennzeichen zwischen den einzelnen Variablennamen/Werte-Paaren gilt, ist stunde&minute=11:47 ungültig. Außerdem müssen alle nichtalphanummerischen Zahlen ausgenommen "-" und "_" konvertiert werden.
70
Mit GET Parameter übergeben
Das Variablen/Werte-Paar begruessung=Christian, Egon & Richard ist demnach ebenfalls falsch, denn hier werden Leerzeichen und ein "&", das eigentlich ein Trennzeichen ist, verwendet. Um diese Stolperfallen zu umgehen, sollten Sie folgende Punkte bei der Generierung beachten: 1. Variablen mit nichtalphanummerischen Zeichen, außer "_", "." und "-", sind nicht zulässig. PHP kann mit solchen Variablennamen unter Umständen nichts anfangen. 2. Werte, die nichtalphanummerische Zeichen, außer "_", "." und "-", enthalten, müssen mit der PHP-Funktion urlencode() konvertiert werden. Hierbei werden die nichtgültigen Zeichen mit einem "%" und anschließendem zweistelligem Hexadezimalcode umgewandelt. Leerzeichen werden in "+" konvertiert. Auf der Folgeseite kann dann PHP die Übergabeparameter korrekt zurückkonvertieren und als Variablen zur Verfügung stellen. Der richtig geschriebene Link lautet also: ">Link;
Die Variablenname/Werte-Paare stunde und minute benötigen keine Konvertierung, da sie nummerisch sind, begruessung muss allerdings konvertiert werden.
5.2.2
Bannereinsprung Hier nun ein kleines Beispiel, das sich die GET-Methode geschickt zunutze macht. Sehr oft haben Webentwickler das Problem, Bannereinsprünge, also Links, direkt in den Inhalt einer mit Frames aufgebauten Webseite, zu realisieren. Meistens müssen neue Frame-Dateien angelegt werden, was natürlich die Übersichtlichkeit und die Wartung erschwert. Das folgende Beispiel zeigt Ihnen, wie Sie beliebige Daten (z.B. spezielle Bannerdaten für die spätere Auswertung) und URLs über mehrere Seiten hinweg transportieren und so das Bannerproblem lösen. Um dies zu realisieren, benötigen Sie die globale Variable $QUERY_STRING. Diese Variable enthält die unverfälschten Parameterübergaben, die bei GET übertragen werden, als String. $QUERY_STRING kommt noch aus der Zeit der CGI-Programmierung. Der Webserver speichert die Übergabeparameter in der Unix-Variablen QUERY_STRING ab. Da
PHP alle CGI-Variablen zur Verfügung stellt, können Sie dies zu Ihrem Vorteil nutzen. Nehmen Sie an, Sie hätten auf irgendeinem Server folgenden URL: Banner
Der URL enthält alle wichtigen Informationen: woher er kommt (quelle 1) und welche Webseite aufgerufen werden soll. Es wird zu einer Framedatei gesprungen, die wie folgt aussieht:
Kapitel 5 • Parameterübergaben in PHP
71
Datei "beispiel3_frm.php3":
Bannerquelle: echo $quelle; ?>
Hier vielleicht die Navigation!
Datei "beispiel_unten.php3":
Bannerquelle: echo $quelle; ?>
Inhalt zum Banner!!!
72
Formularverarbeitung mit POST
Ihnen stehen, wie gewohnt, die Übergabeparameter als normale Variablen zur Verfügung.
Abbildung 5.3: Ein Beispiel mit Frames (Banner)
5.3
Formularverarbeitung mit POST Das folgende Beispiel zeigt anhand eines fiktiven Angebotformulars für ein KFZ die verschiedenen Möglichkeiten der Parameterübergaben. Wir verwenden dabei die POST-Methode. POST sollten Sie verwenden, wenn: 1. Sie große Datenmengen übertragen wollen. Die maximale Länge der URL samt GET-Parameter darf dabei ca. 2 Kilobyte betragen. Bei älteren Webservern lag die Grenze bei maximal 255 Byte. 2. Sie eine manuelle Manipulation der Übergabewerte erschweren wollen. Der Aufwand, eine Website mit ihrem Formular nachzuprogrammieren, steigt, wodurch ein besserer Schutz vor solchen unerwünschten Benutzungen erreicht wird. Andernfalls können Sie ohne Probleme die GET-Methode einsetzen.
Kapitel 5 • Parameterübergaben in PHP
73