php - 如何使用 WP Nonce URL 和 WP Redirect 或 PHP header 摆脱符号

标签 php wordpress redirect

我的代码运行良好:

$registrado = "no";

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

wp_redirect($redirect_url);

exit;

有了这个,我被重定向到

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

正是我所需要的。

然后我决定采取安全措施,使用 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;

现在我得到这个 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_urlesc_url_rawurlencode...但没有成功。

奇怪的事情...wp_redirect(或header)只适用于没有wp_nonce_url的我。我应该摆脱后者吗?还有其他解决方案吗?

提前致谢。

最佳答案

您可以使用 html_entity_decode()& 转换回 &

关于php - 如何使用 WP Nonce URL 和 WP Redirect 或 PHP header 摆脱符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36282840/

相关文章:

.htaccess - 将机器人重定向到站点的静态版本

php - Zend Framework 2 表单注释在没有额外空间的情况下被忽略

php打开修改并保存html文件

php - INSERT ON DUPLICATE KEY UPDATE 多行,检查每行的重复项

php - 将 img 标签转换为 amp-img 的最佳方法是什么?

javascript - suitecrm 的网络引导形式在 WordPress 中不起作用

java - 将子域重定向到工作 HTTPS-Tomcat(使用 NGINX)

url - 禁止谷歌索引重定向网址

php - Jquery/AJAX 更新链接/按钮上的表

php - 无法在 WP 上的帖子标题前添加元素符号