Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как проверить несколько полей сразу на содержание только чисел

Как проверить несколько полей сразу на содержание только чисел


     20.11.2013    Общие вопросы, Общие вопросы по PHP, Модули    3095

вопрос
Есть форма, которая посылает данные из строк в БД. Нужно проверить несколько полей сразу, чтоб они содержали только цифры, а содержание букв прерывало выполнение скрипта, заготовка есть:

if (isset($_POST['send'])) {

//получаю данные из формы
$vallist=$_POST['vallist'];
$minsumm=$_POST['minsumm'];
$newssumm=$_POST['newssumm'];
$commsumm=$_POST['commsumm'];

//проверяю на пустоту эти 3 поля (получилось хорошо)
if (empty($minsumm) || empty($newssumm) || empty($commsumm)) {
$err="Ошибка!!! Не все поля заполнены, заполните их и повторите попытку.";
//вот здесь проверяю на содержание букв...
} elseif(preg_match('|^[\d]*$|', $minsumm)) {
Выполнение скрипта и запросы в базу.
}else{
$err="Ошибка!!! Поля настроек могут содержать только <b>Цифры</b>, другие символы не допустимы.";
}
}


У меня получается проверить только одно поле, а нужно 3 сразу, примерно так же как и проверка на пустоту, я пробовал всяко разно, но у меня выдавало MySQL ошибку, а надо чтоб выдавало текст ошибки из скрипта. Помогите плиииз!!!

Ответа пока нет


4 комментария

vitnet
PHP-developer

vitnet - 20 ноября 2013 21:54 -

Так не?
if (isset($_POST['send'])) { // получаю данные из формы
    $vallist  = $_POST['vallist'];
    $minsumm  = $_POST['minsumm'];
    $newssumm = $_POST['newssumm'];
    $commsumm = $_POST['commsumm'];

    
    if (empty($minsumm) || empty($newssumm) || empty($commsumm)) { // проверяю на пустоту эти 3 поля (получилось хорошо)
        $err = "Ошибка!!! Не все поля заполнены, заполните их и повторите попытку.";
        // вот здесь проверяю на содержание букв...
    }
    if(ctype_digit($minsumm . $newssumm . $commsumm)) {
        // Выполнение скрипта и запросы в базу.
    } else {
        $err = "Ошибка!!! Поля настроек могут содержать только <b>Цифры</b>, другие символы не допустимы.";
    }
}

golden_eagle_god
Юзер

golden_eagle_god - 21 ноября 2013 12:33 -

Цитата: vitnet
ctype_digit($minsumm . $newssumm . $commsumm

Почему то проверяется только 1 поле, а второе и третье не проверяется.

kricha
Юзер

kricha - 21 ноября 2013 13:40 -

Сделайте приведение к инт, да и не парьтесь, а после приведения уже проверяйте на пустоту.

dj-avtosh
PHP-developer

dj-avtosh - 22 ноября 2013 18:34 -

Приведите post к типу int

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 09.07.2014 mmmm  Общие вопросы
наверх