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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: rawurlencode и urlencode = каша

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Viper
Отправлено: 21 Июля, 2009 - 20:59:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Собственно задача простая. Передать в строке запроса переменную с каким-то текстом. к примеру пусть строка будет вида:
index.php?cname=США

для показа строки делаю:
<a href="index.php?cname='.rawurlencode($cname).'">...

т.е. в результате на следующей странице получаю в строке %D0%A1%D0%A8%D0%90

если сделать echo rawurldecode($_POST['cname']); то получается РЎРЁРђ

что-то то ли я с лыжами... то ли где-то ошибка... в чем затык-то ?

PS! C urlencode(decode) тот же баян.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
JustUserR
Отправлено: 21 Июля, 2009 - 21:27:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




А в переменных $cname и $_POST['cname'] одно и то же лежит - вы проверяли?
Хотя может проблемы с кодировками - тогда надо отдебно соображать


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Viper
Отправлено: 21 Июля, 2009 - 22:26:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




JustUserR $cname = 'США';

print_r($_REQUEST); и результат:

CODE (text):
скопировать код в буфер обмена
  1. Array ( [uid] => 2 [pass] => d0eee77d47071bf0a8520321dac37610 [cce155d1feafd016900e5b5e297153e0] => c4d8daa821458478fb46142ca316f253ea71dc55a1dc25542b70d7a4e51ffcfe62 [b3e12912cd21c0dd6dbf0fc03aa70ccd] => 51b19ffb54bd3e1f69ce57e582fbad3d [74cb262c1284d6e08d5a90540bf07efe] => 0d5c255e536231e8ac9dd85651e35608 [PHPSESSID] => d30552c0a3a2b56ac5fd40766e0b714b [option] => com_logs [task] => viewByCountry [cname] => %D0%A1%D0%A8%D0%90 )


...после перекодирования каша как написал выше.

PS! Что база откуда берутся названия стран, что сама страница, все в cp1251.


(Добавление)
тыкс... после некоторых ковыряний разобрался более-менее в чем беда. строка-то в utf8 походу в запросе передается.

сделал через base64_encode(decode). вроде работает. хотя конечно вид ссылки испоганен...
вместо cname=США получается cname=0djA

(Отредактировано автором: 21 Июля, 2009 - 22:38:21)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Nestor
Отправлено: 21 Июля, 2009 - 23:27:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




строка передаваемая в $_GET всегда в utf8.

вот тебе ф-ция в помощь
PHP:
скопировать код в буфер обмена
  1. function utf8_to_win1251($text){
  2.         if (function_exists('iconv')) {
  3.                 return iconv("UTF-8","windows-1251//IGNORE",$text);
  4.         } else {
  5.                 $str = strtr($text,array("Р°"=>"а","Р±"=>"б","РІ"=>"в","Рі"=>"г","Рґ"=>"д","Рµ"=>"е","С‘"=>"ё","Р¶"=>"ж","Р·"=>"з","Рё"=>"и","Р№"=>"й","Рє"=>"к","Р»"=>"л","Рј"=>"м","РЅ"=>"н","Рѕ"=>"о","Рї"=>"п","СЂ"=>"р","СЃ"=>"с","С‚"=>"т","Сѓ"=>"у","С„"=>"ф","С…"=>"х","С†"=>"ц","С‡"=>"ч","С€"=>"ш","С‰"=>"щ","СЉ"=>"ъ","С‹"=>"ы","СЊ"=>"ь","СЌ"=>"э","СЋ"=>"ю","СЏ"=>"я","Рђ"=>"А","Р‘"=>"Б","Р’"=>"В","Р“"=>"Г","Р”"=>"Д","Р•"=>"Е","РЃ"=>"Ё","Р–"=>"Ж","Р—"=>"З","Р?"=>"И","Р™"=>"Й","Рљ"=>"К","Р›"=>"Л","Рњ"=>"М","Рќ"=>"Н","Рћ"=>"О","Рџ"=>"П","Р "=>"Р","РЎ"=>"С","Рў"=>"Т","РЈ"=>"У","Р¤"=>"Ф","РҐ"=>"Х","Р¦"=>"Ц","Р§"=>"Ч","РЁ"=>"Ш","Р©"=>"Щ","РЄ"=>"Ъ","Р«"=>"Ы","Р¬"=>"Ь","Р­"=>"Э","Р®"=>"Ю","С–"=>"і","Р†"=>"І","С—"=>"ї","Р‡"=>"Ї","С”"=>"є","Р„"=>"Є","Т‘"=>"ґ","Тђ"=>"Ґ",));
  6.                 return $str;
  7.         }
  8. }

(Отредактировано автором: 21 Июля, 2009 - 23:55:48)



-----
Aurus CMS
 
 Top
JustUserR
Отправлено: 22 Июля, 2009 - 03:04:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Viper Ну раз в юникоде вы сделайте чтото типа mb_urldecode и потом уже обычный urlencode
Функции mb_urldecode встроенной нету но должна лежать похожая в библиотеках фукнций для PHP
Nestor Чтото подозрения что ваша функция будет работаь по разному в зависимости от того в какой кодировке сохранить PHP-скрипт с ней


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Nestor
Отправлено: 22 Июля, 2009 - 03:18:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




функция будет работаь по разному в зависимости от того в какой кодировке сохранить PHP-скрипт с ней только если отсутствует ф-ция iconv


-----
Aurus CMS
 
 Top
Viper
Отправлено: 22 Июля, 2009 - 19:51:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Nestor спасибо за функцию. переделал. теперь хоть вид урлов нормальный Улыбка

PS! Все файлы все равно в win1251


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB