русские буквы в урл. Опера.

Тема в разделе "PHP", создана пользователем Albus_D, 17 авг 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Albus_D

    Albus_D Постоялец

    Регистр.:
    20 июл 2010
    Сообщения:
    84
    Симпатии:
    4
    В общем пишу скриптики для клан сайта. в игре используются русские ники , на клан сайте нужны разные сервисы , информация где ссылки на персонажей идут вида ?login=русский вася . В ие то всё хорошо , а вот в опере такие ссылки преобразуются в виде ?login=%CC%F3%E4%F0%FB%E9%20%F0%E5%E1%E5%ED%EE%EA и при открытии такой ссылки - ничо не открывается разумеется. тоже самое и с сервисами для клановых сайтов , например в админке для состава клана пишу :
    PHP:
    $sql=mysql_query("SELECT name FROM sostav");
        while(
    $record=mysql_fetch_row($sql)) 
        {    
            
    $sname=$record[0];
            print
    '<tr><td>'.$record[0].'</td><td><a
            href="admin.php?soklan_name='
    .$sname.'&del=y"
            >Удалить</a></td></tr>'
    ;
        }
    ссылка в ИЕ выглядит нормально, в опере перекодированы русские ники. я конечно могу в админке пределать и все манипуляции вести с id записью, но проблемы не решает - потому что когда я например пользователю выведу список сокланов с ссылкой на страницу информации о персонаже в игре - то опере он её не откроет =(
    Так вот есть способ в любом браузере русские буквы показывать как русские ?
     
  2. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Кодировка, упаковывающая кириллические имена доменов в латиницу, называется punycode.

    Пример:
    http://xn----htbbauasklwt1byef.com/

    Данный метод использует, например google. В браузере ссылка выглядит нормально, Крякозыбры будут только в коде html.

    Другого решения пока не придумали. Производители браузеров обещали исправить это через несколько лет.
     
  3. Albus_D

    Albus_D Постоялец

    Регистр.:
    20 июл 2010
    Сообщения:
    84
    Симпатии:
    4
    Объясни пожалуйста подробнее - внешний вид ссылки меня мало интересует собственно, мне главное чтобы она вела по ссылке правильно.
    т.е. смотри у меня вывод списка сокланов - инфа сокланов все равно открывается не по щелчку по нику , а по рисунку-иконке , но вести она будет при использовании punnycode на http://igra.ru/?login=имя или на http://igra.ru?login=%CC%F3%E4%F0%FB%E9%20%F0%E5%E1%E5%ED%EE%EA ? потому что в первом случае откроется то что нужно , а во втором не откроется .
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    надо перекодировать все данные в ссылке что не в латинице или в спец символах, а лучше вообще все значения переменных, если нет, тогда кто нибудь другой начнёт кодировать перекодировать (браузер, сервер, php)
    PHP:
    http://igra.ru/?login=<?=urlencode('имя'?>              
    тогда у $_GET['login'] будет значение "имя", потому что php раскодирование (urldecode) $_GET значений делает автоматически
     
Статус темы:
Закрыта.