[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как запретить ссылку на сторонний сайт
okapo
вот мучает вопрос как можно при добавление сообщение сделать условие и проверить если в сообщение есть ссылка и если ссылка на сароний сайт то выводить ошибку

у меня ссылки записываются через bb вот так
[url=http://test.ru]test[/url] 




Спустя 1 минута, 59 секунд (5.02.2012 - 22:33) johniek_comp написал(а):
okapo
регулярными выражениями

Спустя 10 минут, 46 секунд (5.02.2012 - 22:44) dadli написал(а):
okapo
Цитата
и если ссылка на сароний сайт

здес не понял, что азначает "сароний сайт" ?

Спустя 12 минут, 15 секунд (5.02.2012 - 22:56) okapo написал(а):
Извините за мой русский

как как регуляркой ? у меня проста слабое места с ними unsure.gif

Спустя 12 минут, 19 секунд (5.02.2012 - 23:09) dadli написал(а):
Цитата
Извините за мой русский

laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif
ааахх если би ви знали мои руски

ну скажите, ви хотите запретит любая тип сcилки? или что ви подразумевали под словои: "сароний" ?

Спустя 48 минут, 49 секунд (5.02.2012 - 23:58) okapo написал(а):
пропускать ссылки только на этом же сайте старонные ссылки запретить

например
мой сайт test.ru пропускать все ссылки (test.ru/index.php т.д.)

а если phpforum.ru или google.ru, yandex.ru то запретить

Спустя 12 минут, 47 секунд (6.02.2012 - 00:10) killer8080 написал(а):
регулярки тут не обязательны
$host = parse_url($url, PHP_URL_HOST);
if(!$host || $host == $_SERVER['HTTP_HOST']){
// локальная ссылка
}
else{
// внешняя ссылка
}

Спустя 27 минут, 30 секунд (6.02.2012 - 00:38) dadli написал(а):
killer8080
y TC нужно что, проверить сообшеню, присутствует или нет там чужои силка, по моему все таки нужно регулярки, да?


$host = 'test.ru';
$text = 'asd http://www.test.ru?id=eee ';


preg_match_all("#https?://[^\s]+#",$text,$mas);
if (count($mas[0]) > 0) {
foreach ($mas[0] as $val) {
if (str_replace("www.","",parse_url($val,PHP_URL_HOST)) != $host) {
exit( 'oshibka' );
}
}
}

Спустя 5 минут, 1 секунда (6.02.2012 - 00:43) killer8080 написал(а):
dadli
насколько я понял речь идет о ссылках в bb кодах.

Спустя 1 час, 32 минуты, 9 секунд (6.02.2012 - 02:15) okapo написал(а):
да ссылка в bb ща проверю

Спустя 7 часов, 47 минут, 50 секунд (6.02.2012 - 10:03) nugle написал(а):
dadli
а если не будет http:// то как, вот так можно, но у меня лишнее значение выдается http://
$str = 'asd http://www.test.ru?df=a ddd';
preg_match_all("#(https?://)?[^\s]+\.[a-z]+\??[^\s]*#",$str,$mas);
var_dump($mas);

Данная проблема решиться, если добавить после первой скобки два знака "?:"
В результате регулярное выражение выглядит так
$str = 'asd http://www.test.ru?df=a ddd';
preg_match_all("#(?:https?://)?[^\s]+\.[a-z]+\??[^\s]*#",$str,$mas);
var_dump($mas);

Спустя 51 минута, 43 секунды (6.02.2012 - 10:55) sergeiss написал(а):
Цитата (dadli @ 6.02.2012 - 00:09)
ааахх если би ви знали мои руски

Небольшой ОФФ-ТОП, к вопросу насчет русского языка smile.gif Этот форум - очень хорошая возможность не только насчет ПХП получиться, но и русский язык улучшить. Не сильно напрягаясь. Просто общаясь в процессе обсуждения ПХП.
Подобно тому, что хочешь или не хочешь, но лУчшие хэлпы - на английском. Пока их изучаешь, то и английский улучшается. И я, кстати, недавно специально зашел на англоязычный форум по ПХП, чтобы английский "подтянуть" немного. Читаю, вникаю, пишу сам.

Спустя 2 месяца, 10 дней, 12 часов, 49 минут, 3 секунды (16.04.2012 - 23:44) okapo написал(а):
sergeiss
Спасибо что понимаешь
Быстрый ответ:

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