PHP:在cookie中存储base_64数据

PHP:在cookie中存储base_64数据,php,cookies,base64,mcrypt,setcookie,Php,Cookies,Base64,Mcrypt,Setcookie,我需要在cookie中存储一些数据。数据经过mcrypt加密,然后再经过base64以防止使用任何奇怪的字符。 将加密和编码的字符串存储在会话中,并将其读回&解密/解码工作非常完美。对cookie执行相同操作失败-返回完全杂乱无章的文本 显然,这是因为mcrypt decrypt函数调用接收到不正确的数据,使我相信我的cookie的内容会受到某种方式的影响 PHP到底在幕后对我的cookie数据做了什么? 代码: (注意,为了可读性,mcrypt函数在下面表示为普通函数调用) 在将字符串发送到c

我需要在cookie中存储一些数据。数据经过
mcrypt
加密,然后再经过
base64
以防止使用任何奇怪的字符。
将加密和编码的字符串存储在会话中,并将其读回&解密/解码工作非常完美。对cookie执行相同操作失败-返回完全杂乱无章的文本

显然,这是因为
mcrypt decrypt
函数调用接收到不正确的数据,使我相信我的cookie的内容会受到某种方式的影响

PHP到底在幕后对我的cookie数据做了什么?

代码:
(注意,为了可读性,mcrypt函数在下面表示为普通函数调用)


在将字符串发送到cookie之前,请尝试对其调用urlencode()——我似乎记得,当数据在$\u cookie中可用时,PHP会自动对数据执行urlencode()。

可能与应用的字符编码有关!?会话内容是否也会受到影响?在尝试解码字符串之前,请先查看
$\u COOKIE['string']
中的内容,并确保它与
$\u会话['string']
相同。
$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