[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрет на вставку ссылки
arbuzmaster
Подскажите пожалуйста как сделать проверку на вставку ссылки в поля ИМЯ и ТЕКСТ СООБЩЕНИЯ что бы ссылки в коментах не оставляли? Я так подозреваю что это делается через регулярное выражение, но я в них плохо разбираюсь, а те что нашел - зачем то проверяют каждый домен , но мне домен без разницы! Или как запретить - "http" " : " и " / " ведь точки все равно нужны!

if (preg_match("/^(http://|https://)((www.|([w, -]+.))?([а-яw, -]+.)(com|net|org|info|biz|spb.ru|msk.ru|com.ru|org.ru|net.ru|ru|su|us|bz|kz|ws|рф|pro))(|/.*)$/u&quo t;, $url)) {
echo $url;
}


_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
inpost
А как ты себе это представляешь? Указанные символы прекрасно используются в обычной речи, а двоеточие так вообще частый гость. Вот мой сайт, допустим: school-php.com , без слешей, без двоеточия, но ведь я же ссылку подставил.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
arbuzmaster
Не знаю поэтому и спрашиваю! Как то можно наверное?

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
inpost
arbuzmaster
Вот я вставил на форуме. И что? Это ошибка? Или как ты отличишь текст с точкой от ссылки?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
arbuzmaster
ну например

str_replace(".", ". ",$text);

вроде ссылка но не совсем demo.%20ru
То есть ее нельзя вставить и перейти без правки, а меня интересует рег выражение которое может просто вырезать ссылки любого вида с www без www с http без него и домен любой!

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
inpost
arbuzmaster
Если хочешь добавить пробел, то код уже показал. Я не вижу в этом вообще смысла.
То есть в рекламном объявлении: "зайдите на мой сайт без пробелов: school-php. com"

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
sergeiss
arbuzmaster, я повторю вопрос, заданный инпостом, только в другом виде: озвучь алгоритм, на основании которого ты собираешься ограничивать. И тогда можно будет говорить о том, как его реализовать.
У тебя сейчас проблема именно в алгоритме, а не в ПХП и не в регулярном выражении.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
arbuzmaster
1. Проверяем введенный текст на наличие ссылки
2. Либо вырезаем ссылку без вопросов, либо говорим что ссылки вставлять нельзя
3 Выводим текст без ссылки
Как то так!

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
arbuzmaster
Цитата (inpost @ 3.10.2015 - 14:40)
arbuzmaster
Если хочешь добавить пробел, то код уже показал. Я не вижу в этом вообще смысла.
То есть в рекламном объявлении: "зайдите на мой сайт без пробелов: school-php. com"

на 100% защититься все равно не получится но усложнить вывод простых ссылок можно!

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
FatCat
Цитата (arbuzmaster @ 3.10.2015 - 16:53)
1. Проверяем введенный текст на наличие ссылки
2. Либо вырезаем ссылку без вопросов, либо говорим что ссылки вставлять нельзя
3 Выводим текст без ссылки
Как то так!

Алгоритм "как подарить любимой луну с неба":
1. Залезаем на небо.
2. Снимаем луну.
3. Дарим любимой.
Как-то так!

_____________
Бесплатному сыру в дырки не заглядывают...
sergeiss
Цитата (arbuzmaster @ 3.10.2015 - 17:53)
Проверяем введенный текст на наличие ссылки

Так вот это и самое важное smile.gif Является ли наличие http://(https://) обязательным условием для ссылки? Если нет, то относишь ли ты к ссылке любой текст, содержащий любой набор знаков (допустимых для ссылок), разделенных точкой?

Например, что из этого ЯВЛЯЕТСЯ ссылкой, которую ты не хочешь разрешать:
http://mysite
http://mysite.ru
http:mysite.ru
http://.ru
.ru
mysite.ru
mysite . ru
mysite (dot) ru
"H T T P // mysite . ru"
"H T T P // mysite (dot) ru"
ХТТП:мой-сайт.рф
...

Если использование http:// не является обязательным, то как избежать опознавания слова "яндекс.деньги" как ссылки?

Ты сначала составь полный набор форматов, которые ты запрещаешь. Без этого, еще раз повторю, ты не сможешь ничего сделать. И никто за тебя это не сделает - это же твой алгоритм. Ты сам определяешь, что и как работает.

PS. В итоге тут не обойдешься одной только регуляркой. Проще - и быстрее - написать некую функцию, которая будет это всё анализировать.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Invis1ble
Цитата (FatCat @ 3.10.2015 - 18:52)
Цитата (arbuzmaster @ 3.10.2015 - 16:53)
1. Проверяем введенный текст на наличие ссылки
2. Либо вырезаем ссылку без вопросов, либо говорим что ссылки вставлять нельзя
3 Выводим текст без ссылки
Как то так!

Алгоритм "как подарить любимой луну с неба":
1. Залезаем на небо.
2. Снимаем луну.
3. Дарим любимой.
Как-то так!
arbuzmaster
Все понятно что ни чего не понятно! user posted image Пока обойдусь заменой

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
FatCat
Цитата (arbuzmaster @ 3.10.2015 - 18:37)
Все понятно что ни чего не понятно!

Когда я не могу придумать алгоритм, я его не придумываю, а запускаю проект в отладку.
В случае с запретом публикации ссылок, я бы запустил без такого запрета. А дальше вручную искал бы ссылки; но каждый раз, найдя ссылку вручную, я бы не удалял вручную, а дописывал бы блок в алгоритм; и так до тех пор, пока надобность в ручной проверке не отпадет.

_____________
Бесплатному сыру в дырки не заглядывают...
123456
Я бы искал по тексту всевозможные зоны(ru, com, ua, рф, и т.д.) и от этого плясал бы.... Т.к. 1% из 100000, что в тексте может встретиться зона без указания сайта...

Ну например можно определить какой стоит символ перед зоной(не учитывая пробелы), и если это: . или ) или ] ; то шифровать предыдущее слово и зону.. (ну или к примеру 5-7 знаков перед зоной)

В таком случае ни один из этих вариантов не пройдет через такой фильтр.
Цитата
http://mysite
http://mysite.ru
http:mysite.ru
http://.ru
.ru
mysite.ru
mysite . ru
mysite (dot) ru
"H T T P // mysite . ru"
"H T T P // mysite (dot) ru"
ХТТП:мой-сайт.рф
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.