Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Карявая кодировка на выходе из mcrypt_decrypt=> HTML Отказываеться с этим работать
 
 автор: tim313   (07.04.2010 в 18:27)   письмо автору
 
 

Декодирую данные вот так:


$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 в 19:38)   письмо автору
 
   для: 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);

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования