|
|
|
| Декодирую данные вот так:
$cook = rawurldecode($_COOKIE['cook']);
$vector = mcrypt_create_iv (mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256,
MCRYPT_MODE_ECB), MCRYPT_RAND);
$key = "kjdfrfr3454f43k";
if($cook){
$dec = mcrypt_decrypt (MCRYPT_RIJNDAEL_256, $key,$cook, MCRYPT_MODE_ECB, $vector);}
|
Кодирую в кукиес с использованием rawurlencode.
$decor = mcrypt_encrypt (MCRYPT_RIJNDAEL_256, $key,$newtext,MCRYPT_MODE_ECB,$vector);
$decor = rawurlencode($decor);
|
C тем что выводит жалоб нету, раскодирует все правильно.
Но пытаясь вывести в браузер ту информацию что он раскодировал, браузер начинает очень глючить: в просмотре HTML кода, код обрываеться на начале той раскодированой информации.
Я подумал что наверно кодировка на выходе из mcrypt_decrypt очень карявая, хотя php с ней нормально работает и все правильно делает.
Пытаясь вывесьти в браузер кусок раскодированой инфорации вида:
f/2010/04/06/f_10017k.jpg#
|
браузер глючит, хотя символы как вы видите безобидные.
Пропустя такой кусок информации через urlencode выводит что то типа:
f%2F2010%2F04%2F04%2Ff_10016m.jpg%00%00%00%00%00%00%23
|
Как видно все нормально кроме символа # который кодируеться просто ужасно. если написать просто urlencode("#") ответ будет такой: %23 .
Откуда эти куча нулей непонятно.
Кто знает как можно перевести кодировку на выходе из mcrypt_decrypt в нормальную? | |
|
|
|
|
|
|
|
для: tim313
(07.04.2010 в 18:27)
| | Оказываеться после символов jpg было странные не понятные символы которые бразуер не мог понять.
Исправил так:
$cooktext[$i]="f/2010/04/06/f_10017k.jpg#";
$prevu = explode(".",$cooktext[$i]);
$cooktext[$i]=$prevu[0].".".substr($prevu[1],0,3); | |
|
|
|