За последние 24 часа нас посетили 32208 программистов и 1821 робот. Сейчас ищут 1342 программиста ...

Валидация формы

Тема в разделе "PHP для новичков", создана пользователем Taktreba, 22 фев 2017.

  1. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    Есть у меня домашка по php где нужно реализовать некую задачу. В принципе, так или и иначе, я ее смогу сам сделать, но вот одна проблема - я не знаю насколько глубокую валидацию формы нужно сделать.
    Задача: "Сделайте на форме два поля ввода Date 1 и Date 2. Через поля ввода будут передаваться даты в формате 'год-месяц-день"

    Ребятки накидайте "на что" мне проверять мою форму. Понятно что начать с isset/empty
    input type text обязательно... получать от пользователя должен 1996-11-29 такой формат
    накидайте на что можно проверять эту форму перед тем как записать ее переменную

    ps preg_match мы еще не используем, но как то нужно сделать что "-" был обязательным знаком, делитесь мнениями, но без решения, я сам буду искать пути выполнения кода

    нужно построить комплексную защиту от дурака

    спасибо
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    explode, получаешь массив, считаешь кол-во элементов
     
  3. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    разбить по дефисам и проверить что бы 3 элемента было? ок
    а как задать "-" дефис обязательный элементом?
     
  4. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Хотелось бы еще добавить к посту выше ,как только ты получишь с помощью explode массив вида год,месяц,число,прогони полученные значения через checkdate(),она проверит корректность полученной даты
    https://secure.php.net/manual/ru/function.checkdate.php
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    что значит задать обязательным элементом?
     
  6. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    ну что бы в форму вводили 1990-11-29 а не 19901129 или нет 1990,11,29
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Если разделителем будет -, и ты будешь проверять на количество элементов, а потом пропускать через check_date, то без него тест проходить не будет
     
  8. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Если без регулярки делать и чисто в образовательных целях,то здесь твой формат будет гарантированно соблюдаться(ну о хакерах и тд сейчас речь не идет)
    HTML:
    1. <form action="">
    2.   <input type="date" name="day">
    3.   <input type="submit">
    4. </form>
    5.  
    Можешь попробовать
    https://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_date
     
  9. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    Дело в том что мне нужно задавать дату именно в формате ГОД-МЕСЯЦ-ДЕНЬ все это дело проверять и еще в фоме у меня будет радио батон который будет менять форму
    http://prntscr.com/ebzfsj
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    у тебя будет массив из 3 элементов в нулевом проверяй чтобы был год, в первом месяц и в третьем день
     
  11. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Мануал почитай и у тебя вопросы отвалятся сами собой.