web-dev-qa-db-fra.com

Paramètres Wordpress GET causant 404 Introuvable

tout, je rencontre un problème avec ma page wordpress lors de l’utilisation de paramètres chiffrés $ _GET pour obtenir des données. c'est ma fonction:

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;
    }
}

J'utilise le courrier de l'utilisateur enregistré pour le chiffrer et récupérer ses données à l'aide du paramètre $ _GET. Le problème est que si j'utilise l'adresse email normale (non cryptée, ce qui sera tout à fait inutile et dangereux), la requête $ _GET fonctionne. Si j'utilise un email crypté, je ne reçois qu'une erreur 404.

C'est ce que j'ai essayé jusqu'à présent:

$m=urlencode(encryptDecrypt('mail',$mail,false));    
$msg.="<br><a href='siteurl/pageurl/?m=".$m."'>Click here</a>";

Exemple de courrier chiffré utilisé dans l'URL pour envoyer des données:

VOvk4Wh%2FpMzm21lQNrFnvBcwRWLw6ZVPOMe0VCi2t3g%3D

et, dans la page "récupération":

urldecode($_GET['m']);

Exemple de courrier chiffré utilisé dans l'URL pour récupérer des données:

VOvk4Wh/pMzm21lQNrFnvBcwRWLw6ZVPOMe0VCi2t3g=

Quand j'ouvre la page "réception" avec ce lien, je reçois l'erreur 404

MISE À JOUR+

J'ai résolu le problème, qui était le paramètre 'm' en tant que $ _GET, qui est la taxonomie par défaut d'une wordpress ... Merci à vous tous pour votre aide. :)

4
CapitanFindus

Comme l'OP l'a découvert, m est un nom de paramètre réservé qui doit être utilisé uniquement par core (indique le mois). La solution consiste à utiliser un autre nom de paramètre (utilisez toujours vos propres préfixes dans tous les contextes globaux!).

3
Mark Kaplun

tout d'abord; Activez la fonction wp_debug si vous ne l’avez pas déjà fait. (wp_config.php). Cela devrait vous donner des données d'erreur supplémentaires. Deuxièmement; on dirait que vous utilisez urldecode , mais que vous n'encodez pas votre chaîne. Si vous incluez une adresse e-mail, veillez également à urlencode vos données.

0
john23klipp