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. :)
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!).
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.