Sonderzeichen in Datenübergabe per Query-String
Thomas Trey
- php
Moin
Hab nen Problem mit der Datenübergabe in PHP
z.B. in folgendem Link:
datei.php?var1=test&var2=Pat&Patachon
Da das & als Trennzeichen verwandt wird, bricht PHP beim lesen der Varialbe $var2 beim "&"-Zeichen natürlich ab und $var2 hat dann nur den Wert "Pat".
Wie umgeht man diese Tatsache am besten?
htmlenteties hilft auch nicht, da das "&" in "&" umgewandelt wird und man wieder ein & im String hat.
Maskieren!
Suche im Forum!
Hello Thomas T.,
datei.php?var1=test&var2=Pat&Patachon
Da das & als Trennzeichen verwandt wird, bricht PHP beim lesen der Varialbe $var2 beim "&"-Zeichen natürlich ab und $var2 hat dann nur den Wert "Pat".
Es ist nicht PHP, das hier abbricht, sondern bereits der HTTP-Server, der die Zeichen ? und & als Sonderzeichen abbricht und anhand dieser die Parameter regeneriert.
Der Browser würde dann noch das # aussortieren und zum Anker umwandeln.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
Hab nen Problem mit der Datenübergabe in PHP
z.B. in folgendem Link:datei.php?var1=test&var2=Pat&Patachon
Da das & als Trennzeichen verwandt wird, bricht PHP beim lesen der Varialbe $var2 beim "&"-Zeichen natürlich ab und $var2 hat dann nur den Wert "Pat".
Wie umgeht man diese Tatsache am besten?
Das Stichwort ist URL encoding.
Bau Dir doch mal ein Formular mit method="GET" und einem Text-Input. Trage dort ins Textfeld a&b ein, schicke es ab und beobachte, welche URL der Browser erstellt.
<form action="#" method="GET">
<input type="text" name="text" value="">
<input type="Submit" name="ok" value="ok">
</form>
viele Grüße
Axel
» datei.php?var1=test&var2=Pat&Patachon
Da das & als Trennzeichen verwandt wird, bricht PHP beim lesen der Varialbe $var2 beim "&"-Zeichen natürlich ab und $var2 hat dann nur den Wert "Pat".
Eine Möglichkeit wäre auf das ; als Trennzeichen umzusteigen, so wie es schon in HTML 4.0 vom W3C empfohlen wurde[1].
Setzt natürlich voraus, dass man arg_separator.input in der php.ini oder in .htaccess auf Verzeichnisebene ändern kann. Wird dort beispielsweise ;& eingestellt, kann PHP beide Zeichen erkennen (& muss natürlich weiterhin in URIs als & dargestellt werden).
[1] Wieso ist diese Empfehlung eigentlich nicht (mehr?) in der XHTML-Spec. enthalten
Hello,
Da das & als Trennzeichen verwandt wird, bricht PHP beim lesen der Varialbe $var2 beim "&"-Zeichen natürlich ab und $var2 hat dann nur den Wert "Pat".
Eine Möglichkeit wäre auf das ; als Trennzeichen umzusteigen, so wie es schon in HTML 4.0 vom W3C empfohlen wurde[1].
Ob eine Abweichung vom allgemeinen "Standard" wirklich so intelligent ist, bezweifele ich. Was ist denn, wenn parametrisierte Links von Systemen weitergeleitet werden sollen, die die Parameter anders interpretieren? Wo hier Transparenz und wo hier Interpretation vorliegen darf, ist doch gar nicht wirklich klar.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
» Ob eine Abweichung vom allgemeinen "Standard" wirklich so intelligent ist, bezweifele ich.
Als Sender muss man sich natürlich an das halten, was der Server/die Applikation erwartet.
Als Empfänger ist man ja durch die ;&-Einstellung flexibel. PHP dekodiert dann beides. Es ist sogar in der php.ini so vorgeleistet, man muss nur den Kommentar entfernen.
Dann kann man für seine eigenen Scripts das ; verwenden und wenn andere darauf zugreifen sollen können sie zwischen ; und & wählen.
Ich sehe da kein Problem.
Hallo leute!
wie funzt das mit dem php script einbinden
www.rollenschneidermarkt.de
www.slitter-rewinder-secondhand.de
ciao und danke