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

Discussion in 'PHP' started by Adio, 7 Feb 2010.

  1. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Вообщем ситуация такая.
    Как создать правильно правило для ввода тегов через зяпятую ?

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

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

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

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    $tags=explode(",",$tags);

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

    может он там ввёл словосочетание, а не одно слово. Так что никак.
     
  3. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Можно заюзать такой говнокод, который будет проверять каждый введёный символ и если он не запятая и не a-zA-Zа-я-А-Я0-9 , то кинуть на какую либо страницу
     
  4. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    А если он не поставил запятую то у меня все одним словом идет... то как тогда ? т.е что сделать что бы юзер ставил запятую а без нее не мог запостить ? как проверить есть там запятая или нету ?
     
  5. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Вот реализацие сего говнокода:

    PHP:

    $str 
    "облако тегов";

    foreach( 
    $str as $n => $value ) {

                  if( !
    preg_match("#[a-zA-Zа-яА-Я0-9_,\s]#"$value) ) //набор символов на свой вкус
                       
    $str false; break;

                                                       }

    if( !
    $str //тут делать, если в строке присутствуют всякие левые символы

     
  6. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Вот значение котороя у меня применяеться только для текста -


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


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

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Спасибо но у меня на стороне Jquery+Ajax идет проверка кода я показал код чуть выше ..
     
  8. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    if( !strpos("string", ",") ) die("нету запятой");
     
  9. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Я понимаю.

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



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

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    у меня просто все через jquery без перезагрузки страницы. а твой вариант пока я не нажму сабмит не подейсвует..
     
  11. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Помогите
     
  12. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Ниразу не работал с Jquery но уверен,что можно и без регулярки.
    Аякс это фоновый обмен данных между браузером и веб сервером.
    Можно посылать запрос на php фаил и получить от него ответ.

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