2017-01-31 5 views
0

Ich möchte eine Daten über $_GET schicken und die Daten so aussehen 7U0e1rK6SmjOJuLyAMc5ZL+EsuGqKo2SRSTq3cQlI20=

und die $_GET Variable voucher_code

Wenn ich die $_GET['voucher_code'] Echo versuchte, habe ich immer am Ende mit

7U0e1rK6SmjOJuLyAMc5ZL EsuGqKo2SRSTq3cQlI20= * Anmerkung "Raum" die "+" wird

ersetzt

Wie die $_GET stoppen das zu tun ? Ersetzen meine „+“ mit „Raum“

Jede Antwort

geschätzt Daten
+1

Der Speicherbereich wird nur hinzugefügt, wenn Sie urldecode() in der Zeichenfolge ausführen, bevor Sie das Echo ausgeben. Sie müssen $ _GET-Eingaben nicht dekodieren. Sie sollten bereits entschlüsselt sein. – Brogan

Antwort

1

Um zu bewahren Sie senden, müssen Sie es urlencode zuerst:

eine Zeichenfolge zurück, in der alle nicht alphanumerische Zeichen außer -_. wurden durch ein Prozentzeichen (%) gefolgt von zwei Hexadezimalziffern und Leerzeichen ersetzt, die als Pluszeichen (+) codiert sind. Es ist auf die gleiche Weise codiert, wie die geposteten Daten aus einem WWW-Formular codiert sind, also genauso wie in dem Medientyp application/x-www-form-urlencoded. Dies unterscheidet sich von der »RFC 3986-Codierung« (siehe rawurlencode()) dadurch, daß Leerzeichen aus historischen Gründen als Pluszeichen (+) codiert sind.

Dann, wenn Sie die Daten zu empfangen, müssen Sie urldecode es:

var_dump(urlencode('7U0e1rK6SmjOJuLyAMc5ZL+EsuGqKo2SRSTq3cQlI20=')); 
// result is 7U0e1rK6SmjOJuLyAMc5ZL%2BEsuGqKo2SRSTq3cQlI20%3D 
var_dump(urldecode('7U0e1rK6SmjOJuLyAMc5ZL%2BEsuGqKo2SRSTq3cQlI20%3D')); 
// result is 7U0e1rK6SmjOJuLyAMc5ZL+EsuGqKo2SRSTq3cQlI20= 

Beachten Sie, dass, wenn Sie die Daten mit $_GET, it already passes urldecode.