2011-02-24 4 views
0

일부 데이터를 쿠키에 저장해야합니다. 데이터는 mcrypt 암호화를 거친 다음 base64을 통해 이상한 문자가 사용되지 않도록합니다.
암호화 된 & 인코딩 된 문자열을 세션에 저장하고 다시 읽고 & 해독/해독을 완벽하게 작동합니다. 쿠키에 동일한 작업을 수행하지 못하면 완전히 횡설수설 한 텍스트가 반환됩니다.PHP : 쿠키에 base_64 데이터 저장

분명히 이것은 mcrypt-decrypt 함수 호출이 부적절한 데이터를 수신하여 내 쿠키의 내용이 어떤 식 으로든 영향을 받았다고 생각하게하기 때문입니다.

PHP가 내 쿠키 데이터에서 백그라운드에서 수행하는 작업은 무엇입니까?

코드 :
합니다 (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 
+0

은 아마도 적용된 문자 인코딩과 관련이 있습니다! – Raffael

+0

세션 내용도 영향을받지 않습니까? – Industrial

+0

문자열 해독을 시도하기 전에 먼저'$ _COOKIE [ 'string']'의 내용을보고'$ _SESSION [ 'string']'과 같은지 확인하십시오. –

답변

0

호출 시도를 urlencode() - - 나는 $ _COOKIE에서 PHP를 사용할 수있게 만들 때 PHP가 자동으로 데이터에 대해 urldecode()를 수행한다는 것을 상기 한 것 같습니다.

관련 문제