Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не понятные проблемы с кодировкой
Форумы портала PHP.SU » » Кодировки и все смежное » Не понятные проблемы с кодировкой

Страниц (1): [1]
 

1. Telnet - 10 Мая, 2013 - 02:37:50 - перейти к сообщению
Вообщем пишу свой плагин для приема оплаты Robokassa под джумловский компонент com_eventbooking

Вот значит в принципе все работает
Но до тех пор пока мне нужно сформировать подпись платежа и отправить на сервер

PHP:
скопировать код в буфер обмена
  1.        
  2. function sing($mrh_login,$out_summ,$inv_id,$mrh_pass1,$shp_item){
  3.                 return  md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item");     
  4.         }
  5.                 var_dump($this->mrh_login);
  6.                 $this->mrh_login = iconv('ASCII', 'UTF-8', $this->mrh_login);
  7.                 echo mb_detect_encoding($this->mrh_login);
  8.  
  9.                 $OutSum = round($data['amount'], 2);
  10.                 var_dump($OutSum);
  11.                 echo mb_detect_encoding($OutSum);
  12.                 var_dump($row->id);
  13.                 echo mb_detect_encoding($row->id);
  14.                 var_dump($this->mrh_pass1);
  15.                 echo mb_detect_encoding($this->mrh_pass1);
  16.                 var_dump($row->event_id);
  17.                 echo mb_detect_encoding($row->event_id);
  18.                 $sing =$this->sing($this->mrh_login,$OutSum,$row->id,$this->mrh_pass1,$row->event_id);
  19.                 echo mb_detect_encoding($sing);
  20.                 $Signature = iconv('ASCII', 'UTF-8', $sing);
  21.                 var_dump($Signature);
  22.                 echo mb_detect_encoding($str);die();
  23.  
  24. string(12) "pppppp" ASCII
  25. float(12000) ASCII
  26. int(62) ASCII
  27. string(15) "ppppp111" ASCII
  28. string(2) "56" ASCII
  29. string(32) "431774346b6a53488e05efe43e070b87" ASCII


В итоге всегда получаю следующий ответ
Неверное значение "431774346b6a53488e05efe43e070b87" для параметра "SignatureValue". Правильное значение - b7dc5e5d9fe2b8a3b9831d674e5b36bc .
Кодировка: utf-8.

Я уже не знаю как быть я и файл перекодировал под utf-8
и так пробую $this->mrh_login = iconv('ASCII', 'UTF-8', $this->mrh_login);
в результате всегда получаю ASCII и сервер такую строку подписи не пропускает
2. LIME - 10 Мая, 2013 - 08:47:12 - перейти к сообщению
Telnet пишет:
и так пробую $this->mrh_login = iconv('ASCII', 'UTF-8', $this->mrh_login);
подожди...это надо еще переварить как-то...
...
какая еще нафиг кодировка???!!!
кодировки отличаются только символами старше 128
тоесть вся латиница итдитп в распространенных кодировках совпадают
оно и называется ASCII(символы 0-128)
(Добавление)
бага не в кодировках
3. Telnet - 10 Мая, 2013 - 18:16:31 - перейти к сообщению
Да что то я и сам не могу понять в чем дело
вроде ж как символы ASCII являются частью UTF-8 на сколько я понял это первые 128 символов любой UTF-8 кодировки, значит по сути ASCII и UTF-8 одно и тоже
почему тогда их сервер упорно пишет что не в той кодировке у меня подпись.

Не знаю может потому что я тестирую с локалхоста.

 

Powered by ExBB FM 1.0 RC1