Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 27.03.2015, 12:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Влад_имир,
поиск по форуму validate может на какие мысли натолкнёт и если вы отправили данные с помощью ajax почему страница должна перезагрузится (если всё правильно и submit самой формы отменён)
Ответить с цитированием
  #12 (permalink)  
Старый 27.03.2015, 13:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

echo "Переменная \$zifra имеет тип - ". (gettype($zifra)). "<br/>"; */
if ($zifra <= 1000)
{
    $errors[] = "Нельзя вводить число начинающееся с нуля!!";
     /* echo "Нельзя вводить число начинающееся с нуля!!"; */
}


Влад_имир, зачем так проверять? Что вообще ожидается?
Ответить с цитированием
  #13 (permalink)  
Старый 27.03.2015, 13:33
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

Сообщение от laimas Посмотреть сообщение
echo "Переменная \$zifra имеет тип - ". (gettype($zifra)). "<br/>"; */
if ($zifra <= 1000)
{
    $errors[] = "Нельзя вводить число начинающееся с нуля!!";
     /* echo "Нельзя вводить число начинающееся с нуля!!"; */
}


Влад_имир, зачем так проверять? Что вообще ожидается?
Серверная валидация. Вариантов масса , это пока не интересует. Этот код можно вообще выкинуть

Последний раз редактировалось Влад_имир, 27.03.2015 в 13:35.
Ответить с цитированием
  #14 (permalink)  
Старый 27.03.2015, 13:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну если не интересует, а это ведь полнейшая профанация, тогда вопросов нет.
Ответить с цитированием
  #15 (permalink)  
Старый 27.03.2015, 21:29
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

Сообщение от laimas Посмотреть сообщение
Ну если не интересует, а это ведь полнейшая профанация, тогда вопросов нет.
Здесь проверка на ввод 4 -х значного числа, которое не должно начинаться на ноль. Ниже еще проверка, чтобы цифры не повторялись, на jquery validation эту проверку не сделать, поэтому делаю на пхп. А цифра не ноль, просто начинал когда , не хотел связываться с регулярками.

Последний раз редактировалось Влад_имир, 27.03.2015 в 21:36.
Ответить с цитированием
  #16 (permalink)  
Старый 27.03.2015, 22:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

>Здесь проверка на ввод 4 -х значного числа, которое не должно начинаться на ноль.

То есть $zifra <= 1000 означает, что число начинается на 0? У вас ведь далее именно эта ошибка и выводится. Так вы ведь вообще не проверяется что это, действительно ли цифра, ибо gettype($zifra) определенно вернет вам string, хотя пользователь введет цифры, так как все что не пришло в полях формы, это строки. А значит надо:

if($num = (int)$_POST['key']) {
    //$num это integer и не равно 0
} else //не соответствует услвоию


У вас диалог с сервером асинхронный, а так как в любом случае сервер обязан проверять данные извне, то на клиенте эту проверку можно и не делать. Для современных браузеров можно добавить новые возможности формы, которые и будут делать проверку, а старые браузеры идут лесом, сервер проверит все равно. И как раз на сервер нужно грамотный иметь скрипт и удобный тип данных для обмена с клиентом. А на клиентской стороне продумать отображение сообщений.
Ответить с цитированием
  #17 (permalink)  
Старый 27.03.2015, 23:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну вроде может быть, а вот на самом деле там бог весь что написано.

print_r() - в удобном виде просмотреть структуру массива, вы же используете его для вывода количества элементов массива.

Ошибки помещаете в массив, но вместо того чтобы передать их массивом клиенту, для их отображения или сразу оформить их для клиента (implode с тегами), выплевываете их в цикле по одной.

К чему return false вообще не понять.
Ответить с цитированием
  #18 (permalink)  
Старый 27.03.2015, 23:14
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

Сообщение от laimas Посмотреть сообщение
>Здесь проверка на ввод 4 -х значного числа, которое не должно начинаться на ноль.

То есть $zifra <= 1000 означает, что число начинается на 0? У вас ведь далее именно эта ошибка и выводится. Так вы ведь вообще не проверяется что это, действительно ли цифра, ибо gettype($zifra) определенно вернет вам string, хотя пользователь введет цифры, так как все что не пришло в полях формы, это строки. А значит надо:

if($num = (int)$_POST['key']) {
    //$num это integer и не равно 0
} else //не соответствует услвоию


У вас диалог с сервером асинхронный, а так как в любом случае сервер обязан проверять данные извне, то на клиенте эту проверку можно и не делать. Для современных браузеров можно добавить новые возможности формы, которые и будут делать проверку, а старые браузеры идут лесом, сервер проверит все равно. И как раз на сервер нужно грамотный иметь скрипт и удобный тип данных для обмена с клиентом. А на клиентской стороне продумать отображение сообщений.
Integer - это число из множества ℤ = {..., -2, -1, 0, 1, 2, ...}.
https://php.net/manual/ru/language.types.integer.php я от этого плясал. а максимальное 4-хзначное число с нулем в первом знаке -0999

Последний раз редактировалось Влад_имир, 27.03.2015 в 23:19. Причина: подумал ))
Ответить с цитированием
  #19 (permalink)  
Старый 27.03.2015, 23:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А что вам мешает добавить проверку еще и на меньше нуля, если важны только положительные? А если для базы, и определить полю только положительные значение, так ли страшно это будет? А еще проще взять абсолютное значение if($num = abs((int)$_POST['key'])) ....
Ответить с цитированием
  #20 (permalink)  
Старый 27.03.2015, 23:25
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

У меня проверка на 4 знака есть.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ваша форма отправляется... qwe88 Общие вопросы Javascript 6 09.10.2014 17:01
Не отправляется форма в ie7/8 bayrach jQuery 8 26.09.2012 14:14
jquery.validation remote не работает в IE sergil jQuery 3 15.02.2012 15:55
не работает форма в окне, вызванном jquery page slide ikar jQuery 0 31.07.2011 22:55
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41