Автор Тема: Русский в URL  (Прочитано 5552 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн defter

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
Русский в URL
« : 11 Сентября 2003, 16:13:43 »
У меня такая проблема:
Я при помощи fopen() запрашиваю страничку в URL которой как переменная CGI запроса присутствует русское слово.
При открытии страницы он заместо русского слова выдаёт закодированный вариант(как при urlencode()), при вводе в броузере вручную всё ок.
Подскажите как мне решить проблему.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Русский в URL
« Ответ #1 : 11 Сентября 2003, 19:04:27 »
в URL-е нельзя использовать символы кирилицы. Их нужно через urlencode() пропускать.
То что в броузере все ОК - это его фича
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн defter

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
Русский в URL
« Ответ #2 : 12 Сентября 2003, 09:29:06 »
Вот адрес:
http://trioclan.hoha.ru/test/z.php?nic=

Вот код:
$nic=urlencode($nic);
$fh=fopen("http://combats.ru/inf.pl?login=$nic","r");
 while($tmp_str = fgets($fh,4096))
 {
  echo "$tmp_str";
 }
?>

Заместо русских ников передаются urlencoded да ещё с заменой % на %25 (т.е 2 раза urlencoded)... Ник который точно должен работать - "Кащей".
Подскажите пожалуйста что  я  делаю не так. Заранее спасибо!

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Русский в URL
« Ответ #3 : 12 Сентября 2003, 12:39:09 »
очередной ломатель комбата.
сколько ж вас тут бегает....

Оффлайн defter

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
Русский в URL
« Ответ #4 : 12 Сентября 2003, 12:43:20 »
Я не ломатель... я анализатор пишу!

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Русский в URL
« Ответ #5 : 12 Сентября 2003, 12:51:55 »
[p]urldecode[/p]
ну, будем исповедоваться?

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Русский в URL
« Ответ #6 : 12 Сентября 2003, 12:53:20 »
Цитировать
$nic=urlencode($nic);


Цитировать
Заместо русских ников передаются urlencoded

стою на асфальте я в лыжи обутый
ну, будем исповедоваться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Русский в URL
« Ответ #7 : 12 Сентября 2003, 13:45:18 »
пишут писатели. а ты ни разу
ты услышал краем уха в чате, что "ПэХаПэ - это КУУУЛЛЛЛ" и им "можно комбатс поломать" и решил тоже стать кулхакером с анализами.

Оффлайн defter

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
Русский в URL
« Ответ #8 : 12 Сентября 2003, 15:44:02 »
Цитировать
RomikChef:
пишут писатели. а ты ни разу
ты услышал краем уха в чате, что "ПэХаПэ - это КУУУЛЛЛЛ" и им "можно комбатс поломать" и решил тоже стать кулхакером с анализами.


Ты ошибаешься, во-первых о PHP я не краем уха слышал, а уже давно с ним работаю, во-вторых combats ломать глупо, мне это не нужно!

Оффлайн defter

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
Русский в URL
« Ответ #9 : 12 Сентября 2003, 15:47:23 »
Цитировать
AliMamed:
urldecodephp.net


Возвращает результат не лучше "%ea%e0%f9%e5%e9".

Цитировать
AliMamed:
стою на асфальте я в лыжи обутый


Можете не издеваться, а помочь человеку - напишите мою ошибку или исправьте код.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Русский в URL
« Ответ #10 : 12 Сентября 2003, 16:05:34 »
defter
Вопрос:
Если у тебя переменная $nic передается в срипт как тебе нужно, нафига получать его код:

$nic=urlencode($nic);

и запихивать в ссылку, а потом спрашивать почему в ссылке у меня код?

Оффлайн defter

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
Русский в URL
« Ответ #11 : 12 Сентября 2003, 18:32:36 »
Цитировать
Phoinix:
defter
Вопрос:
Если у тебя переменная $nic передается в срипт как тебе нужно, нафига получать его код:

$nic=urlencode($nic);

и запихивать в ссылку, а потом спрашивать почему в ссылке у меня код?


Я экспериментировал с raw/urlencode - decode, пробовал и напрямую передавать параметр, всё равно выдаёт "%ea%e0%f9%e5%e9".

т.е. я пишу "?nic=Кащей", а получаю то что вверху... и немогу понять как заставить его передать параметр как есть, а не кодировать его...

Может кто-нибудь сталкивался с такой ситуацией...

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Русский в URL
« Ответ #12 : 12 Сентября 2003, 18:39:23 »
а нафига проенкоденный ты еще раз енкодишь?? тебе его декодить надо
ну, будем исповедоваться?

Оффлайн defter

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
Русский в URL
« Ответ #13 : 14 Сентября 2003, 17:51:56 »
Извините конечно, но мне кажется что я по-русски объяснил:
Изначально я пробовал передавать перменную "как есть", получал "%ea%e0%f9%e5%e9", потом я пробовал это декодить(urldecode), всё равно получил тот же результат, на всякий случай попробовал и энкодить, ясное дело тоже ничего хорошего не вышло, вот я и не могу понять что же с этой переменной делать надо, чтоб она по-нормальному передалась!?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28