我的代码工作正常:
$registrado = "no";
$redirect_url = site_url( "/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui®istrado=$registrado");
wp_redirect($redirect_url);
exit;
有了这个,我被重定向到
http://s16138.p360.sites.pressdns.com/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui®istrado=no.
正是我需要的。
然后我决定采用wp_nonce_url
安全措施。
$registrado = "no";
$redirect_url = site_url( "/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui®istrado=$registrado");
//WP Nonce (security measure)
$nonce_redirect_url = wp_nonce_url( $redirect_url, 'pedido-nao-recebido', 'mpms2nonce' );
wp_redirect($nonce_redirect_url);
exit;
现在我收到了这个网址:
http://s16138.p360.sites.pressdns.com/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui&registrado=no&mpms2nonce=aeb5ba40d2.
由于这些amp;
,我的代码已损坏,浏览器为我提供了The s16138.p360.sites.pressdns.com page isn’t working
。重定向页面上有一个未运行的脚本。它是这样的:
//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' );
(...)
我尝试使用php header
函数而不是wp_redirect
,但同样的情况发生了(&符号)。我也尝试了esc_url
,esc_url_raw
,urlencode
......但没有成功。
奇怪的是...... wp_redirect
(或header
)仅适用于没有wp_nonce_url
的我。我应该摆脱后者吗?还有其他解决办法吗?
提前致谢。
答案 0 :(得分:1)
您可以使用html_entity_decode()
将&
转换回&
答案 1 :(得分:0)