|
|
|
| Добрый день.
Задача состоит в следующем.
Есть гостевая книга, надо запретить ввод ссылок в сообщении, но оставить возможность ввода e-mail.
При написании сообщения нет возможности использовать bb-code, сообщение обрабатывается htmlspecialchars();
Поэтому, если вписать в сообщение ссылку, то она будет выведена в таком виде на странице
<a href=\"http://****.com/\">gitiblbxsrvs</a>
Вот пример такого сообщения
<a href=http://www.feuerwehr-altenmarkt-alz.de/buls/unjc/folic_acid_deficiency.html>folic acid deficiency</a>
Fibroelastic alteration http://www.feuerwehr-altenmarkt-alz.de/buls/unjc/folic_acid_deficiency.html
CIS test
<a href=http://www.feuerwehr-altenmarkt-alz.de/buls/unjc/folic_acid_foods.html>folic acid foods</a> In older http://www.feuerwehr-altenmarkt-alz.de/buls/unjc/folic_acid_foods.html
|
Я попробовал написать РВ, что бы реагировало на ссылки, но при этом не реагировало на e-mail, вот что получилось
<?php
if(preg_match("#(<a href=|\[url=|\[link=)?(ftp://|https?://|www)?([\s]?)([^-a-z0-9_@]+)([-a-z0-9/.\s]+\.[a-z]{2,6}[-a-z0-9_/.]*[html|php|cgi]*[\]>]?)+#is",$_POST['text']))
{
$error[] = "<p class='error'>Присутствует запрещённый текст.</p>";
}
?>
|
тестировал сообщениями типа
test.com
www.test.com
http://www.test.com
http://test.com
<a href=http://test.com>tttt</a>
\[url=http://test.com\]tttt\[/url\]***
[link=http://test.com]tttt[/link]
https://test.com
ftp://test.com
tetest.com/book/index.php
вроде нормально реагирует, выдаёт предупреждение, при этом e-mail пропускает.
Но у меня есть сомнения, что я всё правильно сделал, запутался в квантификаторах окончательно.
Просьба к знающим людям, укажите пожалуйста на ошибки.
*** слеши поставил специально, когда писал сообщение здесь | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.04.2010 в 21:41)
| | кому мешают непроведенные в a href ссылки? | |
|
|
|
|
|
|
|
для: Trianon
(12.04.2010 в 22:44)
| | >кому мешают непроведенные в a href ссылки?
не совсем понятно...
не только a href, но и url и link и т.п.
Вообще то владельцу сайта мешает любое подобие рекламной ссылки, кроме адреса e-mail | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.04.2010 в 22:51)
| | что есть url и link?
кому мешает не http://softtime.ru , а просто http://softtime.ru или даже softtime.ru ?
Как этот самый владелец определяет, что ссылка несет рекламный, а не информационный характер?!
Он ясновидящий чтоли? | |
|
|
|
|
|
|
|
для: Trianon
(12.04.2010 в 23:53)
| | может и ясновидящий, не знаю, только задача была в том, что бы кроме текста и e-mail ни чего нельзя было вписать в сообщение. по его словам, много приходит подобных сообщений, образец которых я привёл.
хотя сообщения модерируются, не сразу на страницу выводятся...
хотелось бы узнать о моих ошибках в регулярном выражении :) | |
|
|
|
|
|
|
|
для: Slo_Nik
(13.04.2010 в 00:35)
| | Одно скажу.
Лучи анального поноса изрядной интенсивности из-за того, что на движке невозможно будет изложить мысль без извращений, будут направлены именно Вам, как программисту портала. Хотите себя такой целью выставлять - вперед.
Про владельца портала может кто и вспомнит, но врядли. Вы сам разве только.
Я со своей стороны очень надеюсь никогда не заглянуть на портал, применяющий столь драконовские цензурные ограничения. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2010 в 01:33)
| | >Я со своей стороны очень надеюсь никогда не заглянуть на портал...
а там делать то и не чего :), разве что мечтательным девчушкам там место....
>Вам, как программисту портала...
я таковым не являюсь, да и не портал это вовсе, а так, небольшой сайтик, ну сделал маленькую гостевую и всё... | |
|
|
|