2016-03-29 2 views
0

fein gearbeitet:Wie von Ampersand loszuwerden Mein Code WP Nonce URL und WP Redirect oder PHP-Header

$registrado = "no"; 

$redirect_url = site_url("/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui&registrado=$registrado");  

wp_redirect($redirect_url); 

exit; 

Damit war ich zu

http://s16138.p360.sites.pressdns.com/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui&registrado=no. 

Genau umgeleitet, was ich brauchen.

Dann entschied ich mich, eine Sicherheitsmaßnahme zu ergreifen, mit wp_nonce_url.

$registrado = "no"; 

$redirect_url = site_url("/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui&registrado=$registrado");  

//WP Nonce (security measure) 
$nonce_redirect_url = wp_nonce_url($redirect_url, 'pedido-nao-recebido', 'mpms2nonce'); 

wp_redirect($nonce_redirect_url); 

exit; 

Jetzt erhalte ich diese URL:

http://s16138.p360.sites.pressdns.com/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui&registrado=no&mpms2nonce=aeb5ba40d2. 

Wegen dieser amp;, mein Code ist pleite und Browser gibt mir ein The s16138.p360.sites.pressdns.com page isn’t working. Auf der umgeleiteten Seite befindet sich ein Skript, das nicht ausgeführt wird. Es geht so:

//If it is not a subscription request, abort... 
if (!isset($_GET['mpms2pagarme']) || 'retorno' != $_GET['mpms2pagarme'] || !isset($_GET['codigo']) || !isset($_GET['mensagem']) ) { 
    return; 
} 

//Checking WP Nonce 
check_admin_referer('pedido-nao-recebido', 'mpms2nonce'); 

(...) 

Ich habe versucht, php header Funktion anstelle von wp_redirect, aber das gleiche passiert ist (Ampersand) verwendet wird. Ich versuchte auch esc_url, esc_url_raw, urlencode ... ohne Erfolg.

Seltsames Ding ... (oder header) funktioniert nur für mich ohne wp_nonce_url. Soll ich letzteres loswerden? Irgendeine andere Lösung?

Vielen Dank im Voraus.

+1

umwandeln könnte Sie passieren einfach die Basis-URL auf die Nonce-Funktion und fügen Sie anschließend Ihre restlichen Parameter an. – James

+0

Im [codex] (https://codex.wordpress.org/Function_Reference/wp_nonce_url) heißt es: 'URL mit Nonce zur URL-Abfrage hinzufügen. Das zurückgegebene Ergebnis wird zur Anzeige maskiert. –

+0

Hey, James, tatsächlich hat deine Lösung für mich funktioniert. Einfach und perfekt. Groß! Wie kann ich dir hier etwas belohnen? (immer noch Neuling bei stackoverflow ...) –

Antwort

0

Der String kodierte URL irgendwo wird auf dem Weg

Sie können es dekodieren mit urldecode

wp_redirect(urldecode($nonce_redirect_url)); 
+0

Versucht. Funktioniert nicht, nein. Standbild-URL mit kaufmännischem Und-Zeichen. –

0

Sie können html_entity_decode() verwenden && zurück zu