- Пост форма с определени критерии
WT форуми -> PHP MySQL ASP.NET -> Пост форма с определени критерии
Създайте нова тема Напишете отговор 
Автор Съобщение
optusbg
Нов
Нов

Регистриран на: 14/02/2017 12:32 am

Support: 0
Bonus: 0
Мнения: 2
Мнение 08/09/2017 6:49 pm     Пост форма с определени критерии Отговорете с цитат


Добър вечер, имам $_POST форма, която искам да приема всякакъв текст+ символи и знаци, но ако е писано само на латиница да го отхвърля. Тоест ако текста не съдържа и кирилица - да връща грешка.
Как може да се получи това?

Благодаря.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
joTunkiq
Активен
Активен

Регистриран на: 25/12/2012 12:03 pm

Support: 124
Bonus: 248
Мнения: 763
Мнение 09/09/2017 10:56 am      Отговорете с цитат


PHP code:
$promeliwa = "asdad";
$promeliwa2 = "asdad адса д 31213 21 sdfds ,.,.,/,./,./ ";



if(preg_match('/^a-z$/iu', $promenliwa)) { echo "само латиница";}
if(!preg_match('/^a-z$/iu', $promenliwa2)) { echo "има всякакви символи ";}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 144
Bonus: 287
Мнения: 1326
Мнение 13/09/2017 9:17 pm      Отговорете с цитат


joTunkiq написа:
PHP code:
$promeliwa = "asdad";
$promeliwa2 = "asdad адса д 31213 21 sdfds ,.,.,/,./,./ ";



if(preg_match('/^a-z$/iu', $promenliwa)) { echo "само латиница";}
if(!preg_match('/^a-z$/iu', $promenliwa2)) { echo "има всякакви символи ";}

Това извежда само "има всякакви символи", първата проверка не минава.

Quick run: https://www.ideone.com/CITmvK
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
joTunkiq
Активен
Активен

Регистриран на: 25/12/2012 12:03 pm

Support: 124
Bonus: 248
Мнения: 763
Мнение 14/09/2017 8:14 am      Отговорете с цитат


това е примерен код, дори не бях написал "promenliva" еднакво и на двете места Very Happy

Ето ти пример:



Fixed: https://www.ideone.com/U5GFTV
PHP code:
$promeliwa = "asdad";
$promeliwa2 = "asdad адса д 31213 21 sdfds ,.,.,/,./,./ ";



if(preg_match('/^[a-z]+$/iu', $promeliwa)) { echo "<br/>само латиница";}
if(!preg_match('/^[a-z]+$/iu', $promeliwa2)) { echo "<br/>има всякакви символи ";}
Question
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 144
Bonus: 287
Мнения: 1326
Мнение 14/09/2017 11:12 am      Отговорете с цитат


Ако махнеш кирилицата от втория стринг, пак дава "всякакви символи". Според мен авторът не иска това да мине.

Примерно това трябва да каже "само латиница":
=1-2309 cyrillic ][q1w'


A това трябва да бъде "ок":
1]32w0-qe основен текст на кирилица с малко latinski bukwi
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
joTunkiq
Активен
Активен

Регистриран на: 25/12/2012 12:03 pm

Support: 124
Bonus: 248
Мнения: 763
Мнение 14/09/2017 1:08 pm      Отговорете с цитат


Да, защото има специални символи, мисля, че е ясно какво проверява регулярния израз - само за букви. Като пак казвам, кода е само примерен. Когато автора каже с точност какво иска да филтрира - ще го коригираме. Сега можем само да гадаем. Idea Question
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети