0
我需要在cookie中存储一些数据。数据经过mcrypt
加密,然后通过base64
来防止使用任何奇怪的字符。
在会话中存储加密的&编码字符串并将其读回&解密/解码完美工作。对cookie做同样的事情 - 返回完全乱码的文本。PHP:在cookie中存储base_64数据
显然这是由于mcrypt-decrypt
函数调用接收不正确的数据,使我相信我的cookie的内容受到某种方式的影响。
PHP在幕后对我的cookie数据做了什么?
代码:
(注意mcrypt的函数如下表示为纯函数调用可读性)
$string = base64_encode(mcrypt_encrypt('A string'));
setcookie('string', $string, time()+3600);
$_SESSION['string'] = $string;
$sessiondata = base64_decode(mcrypt_decrypt($_SESSION['string']); // A string!
$cookiedata = base64_decode(mcrypt_decrypt($_COOKIE['string'])); // Completely gibberish
也许与应用字符编码有关!? – Raffael 2011-02-24 15:14:53
会话内容不会受到影响吗? – Industrial 2011-02-24 15:19:03
在尝试解码字符串之前,请首先查看'$ _COOKIE ['string']'中的内容,并确保它与'$ _SESSION ['string']'相同。 – 2011-02-24 15:21:31