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