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 :: Не корректно работает

 PHP.SU

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


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

> Без описания
event
Отправлено: 28 Февраля, 2016 - 20:47:43
Post Id


Частый посетитель


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


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




Всем привет. Есть готовая регулярка, для проверки валидности домена и так же в ней есть возможность проверки кириллического домена. Но почему-то вот кириллические домены проверять не хочет.

PHP:
скопировать код в буфер обмена
  1. $url = "http://домен.рус";     
  2.        
  3. if (!preg_match("~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}" . "(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|". "org|mil|edu|arpa|gov|biz|info|рус|media|aero|inc|name|[a-z]{2})|(?!0)(?:(?". "!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(:[0-9]{1,5})?(?:/[а-яa-z0-9.,_@%\(\)\*&". "?+=\~/-]*)?(?:#[^ '\"&<>]*)?$~i", $url)) {
  4.         die("error");
  5. }


Где ошибка? В чем проблема?
 
 Top
Viper
Отправлено: 28 Февраля, 2016 - 20:55:16
Post Id



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


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


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




event пишет:
кириллические домены проверять не хочет
punycode


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Мелкий Супермодератор
Отправлено: 28 Февраля, 2016 - 20:55:34
Post Id



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


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


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




Покажите в регулярке то место, почему вы решили, что она умеет IDN?
Да и вообще, что она пригодна для валидации домена.


-----
PostgreSQL DBA
 
 Top
event
Отправлено: 28 Февраля, 2016 - 21:08:19
Post Id


Частый посетитель


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


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




Viper пишет:
event пишет:
кириллические домены проверять не хочет
punycode


Сделал, но все равно не работает.

PHP:
скопировать код в буфер обмена
  1. include_once("idna_convert.class.php");
  2.  
  3. $idn = new idna_convert(array('idn_version'=>2008));
  4.  
  5. $url = "домен.рф";
  6.  
  7. $url = isset($url) ? stripslashes($url) : '';
  8. $url = (stripos($url, 'xn--')!==false) ? $idn->decode($url) : $idn->encode($url);
  9.  
  10.  
  11.  
  12. if (!preg_match("~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}" . "(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|". "org|mil|edu|arpa|gov|biz|info|рус|media|aero|inc|name|[a-z]{2})|(?!0)(?:(?". "!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(:[0-9]{1,5})?(?:/[а-яa-z0-9.,_@%\(\)\*&". "?+=\~/-]*)?(?:#[^ '\"&<>]*)?$~i", $url) && !empty($url)) {
  13.         error("Ошибка", "Вы ввели не валидный домен в поле #" . $i . ", вернитесь <a href=\"javascript:history.go(-1)\">назад</a> пожалуйста.");
  14. }
  15.  


PS: punycode - 100 процентов работает. Проверил.
 
 Top
Viper
Отправлено: 29 Февраля, 2016 - 01:50:18
Post Id



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


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


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




event пишет:
Сделал, но все равно не работает.

как-то не вяжется с
event пишет:
PS: punycode - 100 процентов работает. Проверил.

Вы либо кодированный, либо не кодированный проверяете.


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB