Просмотр полной версии : PHP Запретить все кроме зяпятой - Облако тегов
Вообщем ситуация такая.
Как создать правильно правило для ввода тегов через зяпятую ?
Т.е если юзер ввел облако тего через пробле ему должно говориться что нужно ставить запятую.
Вообщем как правильно отфильтровать поле с метками ?
Помогите. что то бошка вообще не соображаеш после работы.. :(
$tags=explode(",",$tags);
превращает из строки тегов - в массив тегов. А так, юзеру можно только написать и предупредить.
Т.е если юзер ввел облако тего через пробле ему должно говориться что нужно ставить запятую.
может он там ввёл словосочетание, а не одно слово. Так что никак.
Deathdreams
07.02.2010, 18:06
Можно заюзать такой говнокод, который будет проверять каждый введёный символ и если он не запятая и не a-zA-Zа-я-А-Я0-9 , то кинуть на какую либо страницу
А если он не поставил запятую то у меня все одним словом идет... то как тогда ? т.е что сделать что бы юзер ставил запятую а без нее не мог запостить ? как проверить есть там запятая или нету ?
Deathdreams
07.02.2010, 18:11
Вот реализацие сего говнокода:
$str = "облако тегов";
foreach( $str as $n => $value ) {
if( !preg_match("#[a-zA-Zа-яА-Я0-9_,\s]#", $value) ) //набор символов на свой вкус
$str = false; break;
}
if( !$str ) //тут делать, если в строке присутствуют всякие левые символы
Вот значение котороя у меня применяеться только для текста -
"noSpecialCaracters":{
"regex":"/^[0-9a-zA-Z]/",
"alertText":"* No caratteri speciali"},
может его как то переделать для запятой ?
Вот реализацие сего говнокода:
$str = "облако тегов";
foreach( $str as $n => $value ) {
if( !preg_match("#[a-zA-Zа-яА-Я0-9_,\s]#", $value) ) //набор символов на свой вкус
$str = false; break;
}
if( !$str ) //тут делать, если в строке присутствуют всякие левые символы
Спасибо но у меня на стороне Jquery+Ajax идет проверка кода я показал код чуть выше ..
Deathdreams
07.02.2010, 18:12
А если он не поставил запятую то у меня все одним словом идет... то как тогда ? т.е что сделать что бы юзер ставил запятую а без нее не мог запостить ? как проверить есть там запятая или нету ?
if( !strpos("string", ",") ) die("нету запятой");
if( !strpos("string", ",") ) die("нету запятой");
Я понимаю.
А как сделать это с этой регуляркой ?
"regex":"/^[0-9a-zA-Z]/",
у меня просто все через jquery без перезагрузки страницы. а твой вариант пока я не нажму сабмит не подейсвует..
-=Zhenek=-
07.02.2010, 19:11
у меня просто все через jquery без перезагрузки страницы. а твой вариант пока я не нажму сабмит не подейсвует..
Ниразу не работал с Jquery но уверен,что можно и без регулярки.
Аякс это фоновый обмен данных между браузером и веб сервером.
Можно посылать запрос на php фаил и получить от него ответ.
Вам просто стоит изменить запрос...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot