$ _POST Wert Geting Plus-Zeichen entfernt

7

Wir übergeben einen öffentlichen ssh-Schlüssel über einen API-Aufruf mit POST. Die seltsame Sache ist, wenn wir den Wert in PHP erhalten, werden die Pluszeichen (+) vollständig entfernt. Dies funktioniert natürlich nicht, da es den Wert des öffentlichen Schlüssels ändert.

Siehe folgende rohe Curl-Anforderung:

%Vor%

Aber wenn wir den Wert von $ _POST ['key'] in unserem PHP var_dump() out setzen, ist es:

%Vor%

Irgendeine Idee, was die Pluszeichen verursacht, die entfernt werden?

    
Justin 14.09.2011, 02:05
quelle

4 Antworten

23

+ in URLs wird von den meisten Servern als codierter Bereich (wie %20 ) interpretiert.

Sie müssen es als %2B kodieren. Anstatt -d/--data zu verwenden, verwenden Sie cURLs --data-urlencode parameter [ man curl ] um dies zu tun. Dies wurde zu curl im Januar 2009 [ Veröffentlichung ] hinzugefügt. , so dass ältere Systeme, die nicht aktualisiert wurden, dies möglicherweise nicht unterstützen.

PHPs rawurlencode [ php docs ] erfüllt die gleiche Funktion .

Und wenn die Daten auf der anderen Seite (Server) zugegriffen werden, wird es bereits automatisch decodiert.
So wird rawurldecode [ php docs ] im PHP-Code nicht benötigt , es würde nur Dinge durcheinander bringen.

    
Jeremy Banks 14.09.2011, 02:06
quelle
0

Sie müssen eine geeignete URL-codierte Zeichenfolge an das Datenargument für curl übergeben. Sie können einen Online-URL-Encoder für einmalige Situationen verwenden.

    
Kerrek SB 14.09.2011 02:08
quelle
-1

Haben Sie magische Anführungszeichen eingeschaltet?

Hier ist eine bestehende Frage, die ein ähnliches Problem anspricht: Warum werden $ _POST-Variablen in PHP ausgeblendet?

Sie müssen URLs auch codieren, selbst wenn sie nicht wie ein get-Wert direkt in die URL gehen.

    
Matt Crinklaw-Vogt 14.09.2011 02:08
quelle
-1

Sie sollten auch base64encode anstelle von urlencode verwenden. Manchmal wird urlencode / decode unerwartete Dinge tun, obwohl ich denke, dass es auch in diesem Fall für dich funktionieren wird.

Ссылка

    
Homer6 14.09.2011 02:10
quelle

Tags und Links