Влад_имир,
поиск по форуму validate может на какие мысли натолкнёт и если вы отправили данные с помощью ajax почему страница должна перезагрузится (если всё правильно и submit самой формы отменён) |
echo "Переменная \$zifra имеет тип - ". (gettype($zifra)). "<br/>"; */
if ($zifra <= 1000)
{
$errors[] = "Нельзя вводить число начинающееся с нуля!!";
/* echo "Нельзя вводить число начинающееся с нуля!!"; */
}
Влад_имир, зачем так проверять? Что вообще ожидается? |
Цитата:
|
Ну если не интересует, а это ведь полнейшая профанация, тогда вопросов нет.
|
Цитата:
|
>Здесь проверка на ввод 4 -х значного числа, которое не должно начинаться на ноль.
То есть $zifra <= 1000 означает, что число начинается на 0? У вас ведь далее именно эта ошибка и выводится. Так вы ведь вообще не проверяется что это, действительно ли цифра, ибо gettype($zifra) определенно вернет вам string, хотя пользователь введет цифры, так как все что не пришло в полях формы, это строки. А значит надо:
if($num = (int)$_POST['key']) {
//$num это integer и не равно 0
} else //не соответствует услвоию
У вас диалог с сервером асинхронный, а так как в любом случае сервер обязан проверять данные извне, то на клиенте эту проверку можно и не делать. Для современных браузеров можно добавить новые возможности формы, которые и будут делать проверку, а старые браузеры идут лесом, сервер проверит все равно. И как раз на сервер нужно грамотный иметь скрипт и удобный тип данных для обмена с клиентом. А на клиентской стороне продумать отображение сообщений. |
Ну вроде может быть, а вот на самом деле там бог весь что написано.
print_r() - в удобном виде просмотреть структуру массива, вы же используете его для вывода количества элементов массива. Ошибки помещаете в массив, но вместо того чтобы передать их массивом клиенту, для их отображения или сразу оформить их для клиента (implode с тегами), выплевываете их в цикле по одной. К чему return false вообще не понять. |
Цитата:
https://php.net/manual/ru/language.types.integer.php я от этого плясал. а максимальное 4-хзначное число с нулем в первом знаке -0999 |
А что вам мешает добавить проверку еще и на меньше нуля, если важны только положительные? А если для базы, и определить полю только положительные значение, так ли страшно это будет? А еще проще взять абсолютное значение if($num = abs((int)$_POST['key'])) ....
|
У меня проверка на 4 знака есть.
|
| Часовой пояс GMT +3, время: 06:42. |