А всю остальную белеберду типа % $ # )( + = / | \ } ] { [ ^ @ * Запретить.
if (!$comments) $error['comments'] = true;
if (!preg_match("`^[0-9A-Za-z\.]{1}[0-9A-Za-z\.]{5,}$i` ", $server)) $error['server'] = true;
Как правильно [0-9A-Za-z\.]{1}[0-9A-Za-z\.]{5,} Выставить?
А то Если даже вводить како нить HTML код или php код, он его прямиком в базу пропускает. А это не есть хорошо.
Спустя 4 минуты, 39 секунд (19.07.2012 - 23:20) Игорь_Vasinsky написал(а):
strip_tags()
htmlspecialchars()
#[-0-9a-zа-яё,\.\:]#i
u - if unicode
htmlspecialchars()
#[-0-9a-zа-яё,\.\:]#i
u - if unicode
Спустя 2 минуты, 19 секунд (19.07.2012 - 23:22) 715kg написал(а):
Как вот этим воспользоваться?
strip_tags()
htmlspecialchars()
u - if unicode
strip_tags()
htmlspecialchars()
u - if unicode
Спустя 3 минуты, 2 секунды (19.07.2012 - 23:25) Игорь_Vasinsky написал(а):
Цитата |
strip_tags() htmlspecialchars() |
это 2 штатные функции php - глянь мануал
это паттерн лоя preg_match()
Цитата |
#[-0-9a-zа-яё,\.\:]#i |
это модификатор для паттерна - если работаешь в utf-8
u - if unicode
i - модификатор - который говорит паттерну забить на регистр символов
Спустя 23 минуты, 57 секунд (19.07.2012 - 23:49) 715kg написал(а):
Сделал. Но если пишешь так Google bots Хур сервер Он не пропускает.
В чем проблема?
В чем проблема?
Спустя 1 минута, 9 секунд (19.07.2012 - 23:50) Игорь_Vasinsky написал(а):
\s - в группу символов добавь и модификатор s допиши. - это пробел.
Спустя 3 минуты, 38 секунд (19.07.2012 - 23:54) 715kg написал(а):
В этом деле я вообще бестолковый((( Что не так, подскажите пожалуйста.
if (!preg_match("`^[-0-9a-zа-яё-s,\.\s\:]$i` ", $comments)) $error['comments'] = true;
Спустя 3 минуты, 35 секунд (19.07.2012 - 23:57) Игорь_Vasinsky написал(а):
if (!preg_match("#^[-0-9a-zа-яё,\.\s\:]{5,}$#i", $comments)) $error['comments'] = true;
Спустя 5 минут, 12 секунд (20.07.2012 - 00:03) 715kg написал(а):
Все-равно не пропускает. Вызывает $error['comments']
Спустя 3 минуты, 10 секунд (20.07.2012 - 00:06) Игорь_Vasinsky написал(а):
if (!preg_match("#^[-0-9a-zа-яё,\.\s\:]{5,}$#is", $comments)) $error['comments'] = true;
Спустя 8 минут, 19 секунд (20.07.2012 - 00:14) 715kg написал(а):
Пропускает. Но если в слове есть заглавная буква, то опять же не пропускает.
Допустим пишу в поле слово Серве
То так же не пропускает.
Допустим пишу в поле слово Серве
То так же не пропускает.
Спустя 3 минуты, 17 секунд (20.07.2012 - 00:17) Игорь_Vasinsky написал(а):
господи...
if (!preg_match("#^[-0-9a-zа-яё,\.\s\:]{5,}$#isu", $comments)) $error['comments'] = true;
Спустя 4 минуты, 59 секунд (20.07.2012 - 00:22) 715kg написал(а):
Извини пожалуйста. Просто для меня это лес.
Вот в чем, так по этой части знание не имею.
Кстате так тоже не работает. Опять же не пропускает.
Вот в чем, так по этой части знание не имею.
Кстате так тоже не работает. Опять же не пропускает.
Спустя 20 минут, 13 секунд (20.07.2012 - 00:42) Игорь_Vasinsky написал(а):
странно.. там же i стоит...
Спустя 46 секунд (20.07.2012 - 00:43) Игорь_Vasinsky написал(а):
if (!preg_match("#^[-0-9A-zА-яё,\.\s\:]{5,}$#isu", $comments)) $error['comments'] = true;
Спустя 1 час, 33 минуты, 50 секунд (20.07.2012 - 02:17) FatCat написал(а):
Цитата (715kg @ 20.07.2012 - 00:15) |
белеберду типа % $ # )( + = / | \ } ] { [ ^ @ * Запретить |
Если список белиберды конечен и известен, простым перечислением.
Цитата (Игорь_Vasinsky @ 20.07.2012 - 00:20) |
#[-0-9a-zа-яё,\.\:]#i |
#[:alnum:,\.\:\-_]#i
Спустя 5 часов, 59 минут, 10 секунд (20.07.2012 - 08:16) Игорь_Vasinsky написал(а):
да я для наглядности ему.
Спустя 4 часа, 36 минут, 22 секунды (20.07.2012 - 12:53) 715kg написал(а):
Я видимо не так рассказал что мне нужно, по этому вы тоже не можете понять. Мне это надо для комментариев.
Чтобы можно было писать любое слово, хоть в нижнем регистре хоть в верхнем. Тавить точки запятые. Но нужно ограничить символы № @ > < / Для того чтобы нельзя было ввести HTML или PHP код. Так как ХТМЛ содержит < а пхп $ @
Чтобы можно было писать любое слово, хоть в нижнем регистре хоть в верхнем. Тавить точки запятые. Но нужно ограничить символы № @ > < / Для того чтобы нельзя было ввести HTML или PHP код. Так как ХТМЛ содержит < а пхп $ @
Спустя 4 часа, 26 минут, 48 секунд (20.07.2012 - 17:19) FatCat написал(а):
Цитата (715kg @ 20.07.2012 - 13:53) |
нужно ограничить символы № @ > < / |
$deny = array(
'<'=>'& lt;',
'>'=>'& gt;',
'№'=>'No',
'@'=>'[dog]',
'/'=>'& #47;'
);
foreach($deny as $k=>$v)$_POST['Post'] = str_replace($k,$v,$_POST['Post']);
Пробелы после амперсандов нужно убрать.