我的代码运行良好:
$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;
现在我得到这个 URL:
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
的我。我应该摆脱后者吗?还有其他解决方案吗?
提前致谢。
最佳答案
您可以使用 html_entity_decode()
将 &
转换回 &
关于php - 如何使用 WP Nonce URL 和 WP Redirect 或 PHP header 摆脱符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36282840/