Просмотр поста

.
ДоХтор
# Beibarys (11.12.2016 / 00:13)
В общем разобрался
Самый ужасный код наверное))
И так каждый массив проверил ска(((
Посмотри на этот вариант (+/-)
<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $errors = [
        'r1'  => 'Введите оценки лабораторной работы!',
        'r2'  => 'Введите оценки практики!',
        'r3'  => 'Введите оценки СРО!',
        'r4'  => 'Введите оценки лекции!',
        'rk1' => 'Введите оценку РК!'
    ];

    $arr = array_map(function ($str) {
        $array = array_filter(explode(' ', $str), function ($i) {
            if (preg_match('~[0-9]~', $i)) {
                return (strlen($i) <= 3);
            }
        });
        return join(' ', $array);
    }, $_POST);
        
    $err = array_diff_key($errors, array_diff($arr, ['']));

    if (!empty($err)) {
        echo join('<br />', $err);
    } else {
        // Тут код, если введены данные без ошибок
    }
}

echo '<form method="POST">
	<p>Введите оценки лекции <b>(оценки вводить через пробел):</b></p>
	<input type="text" name="r4" value="" /> <br/>
	<p>Введите оценки практики <b>(оценки вводить через пробел):</b></p>
	<input type="text" name="r2" value="" /> 
	<p>Введите оценки СРО <b>(оценки вводить через пробел):</b></p>
	<input type="text" name="r3" value="" /> 
	<p>Введите оценки лабораторной работы 
    <b>(оценки вводить через пробел):</b></p>
	<input type="text" name="r1" value="" /> 
	<p>Введите оценку РК</p>
	<input type="text" name="rk1" value="" /> <br /><br />
	<button class="btn btn-info" name="send" />Считать</button><br /><br />
	</form>
';
Тут плюс в том, что теперь можно вводить в каждое поле от одной и более оценок, при этом, если будет среди чисел текст, то он будет проигнорирован, т.е. в массив попадают только цифры. А так же, теперь учитывается длина числа. Если будет написана строка такого вида 44 5555, то в массив попадёт только 44. Если же первое число в строке будет больше допустимой длины (например 5555 а после него 44), то будет вызвана ошибка из массива $errors.