Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как проверить несколько полей сразу на содержание только чисел

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


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

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

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
218

2171 | 930

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
26

247 | 34

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

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

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

kricha
4

60 | 12

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

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

dj-avtosh
39

1479 | 390

dj-avtosh - 22 ноября 2013 18:34 - шашлычник

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

skype: elhan.isaev

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

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

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