找不到导致404的WordPress获取参数

时间:2014-12-03 作者:CapitanFindus

总之,我的wordpress页面在使用加密的$\\u GET参数获取数据时出现问题。这是我的职责:

function encryptDecrypt($key, $string, $decrypt)
{
    if($decrypt)
    {
        $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "6");
        return $decrypted;
    }else{
        $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
        return $encrypted;
    }
}
我使用注册用户的邮件对其进行加密,并使用$\\u GET参数检索他的数据。问题是,如果我使用普通的电子邮件地址(未加密,这将是非常无用和危险的),那么$\\u GET请求就会工作。如果我使用加密电子邮件,我只会收到404错误。

这就是我迄今为止所尝试的:

$m=urlencode(encryptDecrypt(\'mail\',$mail,false));    
$msg.="<br><a href=\'siteurl/pageurl/?m=".$m."\'>Click here</a>";
URL中用于发送数据的加密邮件示例:

VOvk4Wh%2FpMzm21lQNrFnvBcwRWLw6ZVPOMe0VCi2t3g%3D
在“检索”页面中:

urldecode($_GET[\'m\']);
URL中用于检索数据的加密邮件示例:

VOvk4Wh/pMzm21lQNrFnvBcwRWLw6ZVPOMe0VCi2t3g=
当我打开带有该链接的“接收”页面时,我得到了404错误

UPDATE+

我已经解决了这个问题,“m”作为$\\u GET参数,这是wordpress的默认分类法。。。感谢大家对我的帮助。:)

3 个回复
SO网友:Mark Kaplun

OP发现,m 是仅应由core使用的保留参数名称(表示月份)。解决方案是使用其他一些参数名称(在所有全局上下文中始终使用您自己的前缀!)。

SO网友:john23klipp

第一关;如果尚未打开wp\\U调试功能,请打开该功能。(wp\\u config.php)。这将为您提供一些额外的错误数据。其次看起来您正在使用urldecode,但没有对字符串进行编码。如果您包含电子邮件地址,请确保对您的数据进行URL编码。

SO网友:Lucas Bustamante

我刚发现我有post_type 与查询字符串同名。

例如,如果有一个post\\u类型news, 此查询字符串将返回404:?news=foo, 即使您启用了相当多的永久链接。

您可以重命名帖子类型或查询字符串。

结束

相关推荐

Php根据帖子类型显示不同的结果

我正在努力搜索。php模板。我想根据他们的帖子类型显示不同的结果。我有页面、帖子和机器(自定义帖子类型)下面是当前结果页面的一个示例:http://dev.digitalgroupmedia.com/fortron/?s=fortron&search-submit=Submit+Query第一个结果是一个帖子,其他的都是机器页面和帖子可以用一个简单的超链接标题来显示,但我希望机器具有当前的格式。我的php并不令人惊奇,通常是通过随机尝试和错误拼凑起来的。我知道需要某种类型的if/else语句模板来