Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Общие вопросы (http://forum.mynuke.ru/forumdisplay.php?f=19)
-   -   ссылки по-русски (http://forum.mynuke.ru/showthread.php?t=2511)

diplodok 09.01.2007 00:15

ссылки по-русски
 
Всем привет. Может хотя бы здесь мне помогут.
У меня необычная проблема(может только для меня)
Я играю в онлайн игру и сделал сайт на базе нюки 7.9 от Shkurki.ru
Так вот в игре используются русские имена. Соответственно ссылки на персонажей тоже с русскими символами. Проблема в том что на форуме почему то русские символы в ссылке игнорируются.
Например:
правильная ссылка - http://go.territory.ru/user_info.php?log=Урфин%20Джус
на моём форуме получается - http://go.territory.ru/user_info.php?log=Урфин%20Джус
Если имя персонажа латиницей, то ссылка отображается нормально.

С чем это может быть связанно? Помогите разобраться. Уже год так мучаюсь. :cry:

Soniks 09.01.2007 00:49

diplodok в сылке пробелов не должно быть, используйте функцию urlencode()

diplodok 09.01.2007 00:55

Пробелы для правильной адресации ссылки заменяются на %20, но не в пробелах проблема. Тоже самое и без них происходит.

Soniks 09.01.2007 01:05

diplodok значит в скрипте какой-то фильтр стоит

diplodok 09.01.2007 01:09

Soniks может, но где он может быть? А самое интересное, что на денвере всё работает на ура. Кстати на форуме шкурок таже самая ситуация.

Soniks 10.01.2007 03:02

diplodok
Цитата А самое интересное, что на денвере всё работает на ура.
тогда проблемма может быть в сервере или браузере?

diplodok 10.01.2007 16:48

Если смотреть результирующий HTML код, то ссылка выглядит так:
<a href="http://go.territory.ru/user_info.php?log=" target="_blank">http://go.territory.ru/user_info.php?log=</a>Игрок<br />

Т.е. русское слово не попадает в ссылку.
Независимо от броузера и компьютера с которого идет просмотр странички.

Если принудительно на форуме заключить ссылку в URL-тэг, то она показывается просто как текст, а не ссылка.
Этот глюк проявляется только на форуме. В контенте, в новостной ленте и др. станицах сайта ссылки отображаются нормально. Видимо BBCode не понимает русский язык или еще что. Я не профи в PHP и мне трудно найти откуда ноги растут у этой проблемы.
Если проблема на сервере, то я так понимаю надо трясти хостера. Тогда в чем может быть проблема, на какие параметры обратить внимание хостера? Мой сайт являестся субдоменом моего же домена. Может нужно поменять какието настройки домена?

PS
Вот что я обнаружил. русские буквы в ссылке воспринимаются аналогично пробелам и соответственно в автомате игнорируются Bb-кодом, а в принудительном заключении в тэг Url ссылка воспринимается как обычный текст. где это можно поправить?

Soniks 12.01.2007 02:53

diplodok все правильно, если используете сторонний bbcode то там возможена стоит проверка урла или сам bbcode так устроин и стоит там скажем поиск по a-Z, т.е. писалась не под русских пользователей, нужно айти этот кусок кода и добавить а-яА-Я

diplodok 12.01.2007 16:42

Спасибо, нашел и добавил необходимое. Это было в ../includes/bbcode.php

PHP код:
 // matches a [url]xxxx://www.phpbb.com[/url] code..
    
$patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\а-яА-Я\]+]+|\[(?!url=))*?)\[/url\]#is";
    
$replacements[] = $bbcode_tpl['url1'];

    
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
    
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\а-яА-Я\]+]+|\[(?!url=))*?)\[/url\]#is";
    
$replacements[] = $bbcode_tpl['url2'];

    
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
    
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\а-яА-Я\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
    
$replacements[] = $bbcode_tpl['url3'];

    
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
    
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\а-яА-Я\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
    
$replacements[] = $bbcode_tpl['url4']; 

:smile:


Часовой пояс GMT +4, время: 10:23.

Copyright © 2005 by Soniks