PDA

Просмотр полной версии : PHP Запретить все кроме зяпятой - Облако тегов


Adio
07.02.2010, 17:57
Вообщем ситуация такая.
Как создать правильно правило для ввода тегов через зяпятую ?

Т.е если юзер ввел облако тего через пробле ему должно говориться что нужно ставить запятую.

Вообщем как правильно отфильтровать поле с метками ?

Помогите. что то бошка вообще не соображаеш после работы.. :(

mr.The
07.02.2010, 18:04
$tags=explode(",",$tags);

превращает из строки тегов - в массив тегов. А так, юзеру можно только написать и предупредить.

Т.е если юзер ввел облако тего через пробле ему должно говориться что нужно ставить запятую.
может он там ввёл словосочетание, а не одно слово. Так что никак.

Deathdreams
07.02.2010, 18:06
Можно заюзать такой говнокод, который будет проверять каждый введёный символ и если он не запятая и не a-zA-Zа-я-А-Я0-9 , то кинуть на какую либо страницу

Adio
07.02.2010, 18:10
А если он не поставил запятую то у меня все одним словом идет... то как тогда ? т.е что сделать что бы юзер ставил запятую а без нее не мог запостить ? как проверить есть там запятая или нету ?

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 ) //тут делать, если в строке присутствуют всякие левые символы

Adio
07.02.2010, 18:12
Вот значение котороя у меня применяеться только для текста -


"noSpecialCaracters":{
"regex":"/^[0-9a-zA-Z]/",
"alertText":"* No caratteri speciali"},


может его как то переделать для запятой ?

Adio
07.02.2010, 18:12
Вот реализацие сего говнокода:



$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("нету запятой");

Adio
07.02.2010, 18:18
if( !strpos("string", ",") ) die("нету запятой");

Я понимаю.

А как сделать это с этой регуляркой ?



"regex":"/^[0-9a-zA-Z]/",

Adio
07.02.2010, 18:20
у меня просто все через jquery без перезагрузки страницы. а твой вариант пока я не нажму сабмит не подейсвует..

Adio
07.02.2010, 18:31
Помогите

-=Zhenek=-
07.02.2010, 19:11
у меня просто все через jquery без перезагрузки страницы. а твой вариант пока я не нажму сабмит не подейсвует..

Ниразу не работал с Jquery но уверен,что можно и без регулярки.
Аякс это фоновый обмен данных между браузером и веб сервером.
Можно посылать запрос на php фаил и получить от него ответ.

Вам просто стоит изменить запрос...