НТМL-форма и ее обработчик на PHP | Базовый курс PHP-7

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ส.ค. 2024
  • НТМL-формы создаются при помощи парных тегов form и /form, между которыми располагаются теги элементов управления.
    Мы создадим простую форму с парой полей и поработаем с файлом php, который будет принимать эту форму и проводить определенные действия на сервере.
    ДОМАШНЕЕ ЗАДАНИЕ:
    drive.google.c...

ความคิดเห็น • 41

  • @sintel8138
    @sintel8138 3 ปีที่แล้ว +23

    Проблем c is_int была в том, что функция is_int проверяет - является ли то, что ей передали целочисленным типом данных т.е. INT.
    В свою очередь форма нам передаёт информацию в типе данных - string. Т.е. введя в форму - 37, в php мы получаем строку - "37".
    Для решения таких проблем и используется функция is_numeric, дословно с документации:
    >

  • @Atikan37
    @Atikan37 5 หลายเดือนก่อน +1

    Огромное спасибо за ваши уроки! Вот уже почти подхожу к концу и не могу передать словами, насколько вам благодарен, а я уже отнюдь не новичек (пройдены: HTML, CSS, GIT (github и gitlab), JS, React, Python, Docker, RabbitMQ), но для самостоятельного развития - это бесценные уроки! Низкий вам поклон!

    • @andrievskii
      @andrievskii  5 หลายเดือนก่อน +1

      Пусть все получится и принесет удовольствие

  • @user-hm4pv5ou7j
    @user-hm4pv5ou7j หลายเดือนก่อน +1

    Большое спасибо за уроки, очень доступно и понятно.

  • @alisa545
    @alisa545 ปีที่แล้ว +3

    Для тех кто из будущего.
    Методом POST нельзя проверить функцией empty() если значение $value - пустое. Тут надо вспомнить что POST передает ассоциативный массив ($key => $value).
    Если значение $key будет заполнено, а мы его заполняем передавая в HTML в from значение $value) {
    if (empty($value)) {
    echo 'Одно или более поле не заполнены';
    exit();
    }
    }

    • @Atikan37
      @Atikan37 5 หลายเดือนก่อน

      Спасибо большое!

  • @vse_aaa_3860
    @vse_aaa_3860 4 ปีที่แล้ว +6

    Здравствуйте. Вы золотой человек, спасибо вам большое ! Такой контент, да ещё и бесплатно ! Желания и мотивация на высшем уровне! По больше бы таких людей как вы. Спасибо 😊

    • @andrievskii
      @andrievskii  4 ปีที่แล้ว

      Удачного обучения

  • @user-tq8ub6lr5j
    @user-tq8ub6lr5j 4 ปีที่แล้ว +7

    как всегда на высоте:)

  • @dantealigery708
    @dantealigery708 ปีที่แล้ว

    хорошие уроки , простая подача материала, я сейчас вспоминаю php ( когда - то давно писал на php 5) всё легко и понятно подаётся. спасибо. p.s. подписан и ставлю лайк!

  • @OlegOleg-sk8do
    @OlegOleg-sk8do ปีที่แล้ว +1

    Спасибо за работу!

  • @romicanable
    @romicanable 3 ปีที่แล้ว +1

    Лайк! спасибо за интересное домашнее задание.

  • @sreggh
    @sreggh 3 ปีที่แล้ว

    Пока сложновато, но только потому, что мало работал по этой теме. Но объясняешь ты хорошо. Спасибо за урок!

  • @Alexus1504
    @Alexus1504 3 ปีที่แล้ว

    О, начали какую то логику в скриптах писать! Здорово!

  • @developerno1820
    @developerno1820 2 ปีที่แล้ว +4

    Для тех кто не справился с дз:
    if (empty($_POST['name'])) {
    $errors[] = 'Поле name пустое';
    }else{
    $name = $_POST['name'];
    $arr = preg_split('//u',$name,-1,PREG_SPLIT_NO_EMPTY); // Разбивает строку на массив символов, в отличии от str_split нормально работает с кириллицей
    foreach($arr as $key => $value){
    if(is_numeric($value)){
    $errors[] = "Символ номер " . ($key+1) . " не является строкой";
    }
    }
    }

  • @Ddd-hg9dy
    @Ddd-hg9dy 4 ปีที่แล้ว +1

    Спасибо!

  • @contactplus100
    @contactplus100 2 ปีที่แล้ว

    👍

  • @slava_po
    @slava_po 3 ปีที่แล้ว

    Андрей почему проваливаемся когда (!empty ($_post) при незаполненных полях. То есть в поля ничего не ввели и но всё равно проваливаемся?

  • @user-xs1us5li1b
    @user-xs1us5li1b 4 หลายเดือนก่อน +1

    Как подключить php обработчик к веб форме?

    • @andrievskii
      @andrievskii  4 หลายเดือนก่อน

      1. Добавьте атрибут method="post" к тегу
      2. Укажите атрибут action с путем к PHP-файлу, который будет обрабатывать данные формы.
      3. Создайте PHP-файл с именем, указанным в атрибуте action формы
      4. Используйте суперглобальный массив $_POST для доступа к данным, отправленным из формы.
      5. Обработайте данные формы, выполните необходимые действия (например, сохраните данные в базе данных, отправьте письмо) и выведите сообщение пользователю.

  • @alexvitkouski
    @alexvitkouski ปีที่แล้ว +1

    Вроде рабочий вариант:

  • @poiu7185
    @poiu7185 3 ปีที่แล้ว

    Здравствуйте,когда я отправляю данные с формы у меня выводится просто php код мой,а не само сообщение.Скажите, пожалуйста,что мне делать?

    • @andrievskii
      @andrievskii  3 ปีที่แล้ว

      Скорее всего в атрибутах формы проблема, какой у вас action?

    • @poiu7185
      @poiu7185 3 ปีที่แล้ว

      @@andrievskii такой как и название php файла,я даже менял,чтобы проверить.Но как только тип файла на php изменил,все заработало.

  • @arbuzacraft6652
    @arbuzacraft6652 4 ปีที่แล้ว

    привет Андрей! пытаюсь решить домашнее задание ничего не получается. как можно проверить массив есть ли в нем что-то, что не строка если я его создал из строки expolde. как можно решить эту задачу?

    • @andrievskii
      @andrievskii  4 ปีที่แล้ว +1

      Если ты четко знаешь, что после эксплод в каком-то элеменете массива будет не строка, а число например, приведи этот элемент к интеджер, а далее сделай проверку на тип.

    • @arbuzacraft6652
      @arbuzacraft6652 4 ปีที่แล้ว

      Андрей Андриевский спасибо! Когда смотрю твои уроки все понимаю , но когда пытаюсь сам решить впадаю в ступор ..

    • @user-nv7cp3jx4k
      @user-nv7cp3jx4k 4 ปีที่แล้ว

      Просто воспользуйся ctype_digit и проблем не будет, ведь с ctype_digit жизнь становиться проще!

    • @sreggh
      @sreggh 3 ปีที่แล้ว

      @@andrievskii что-то не вышло реализовать такую проверку. Получилось только выдавать ошибку, если все выражение является числовым. а если в строковом выражении присутствуют цифры - нет.
      вот часть кода:
      if(empty($_POST['name'])){
      $errors[] = 'Поле name пустое'; }
      elseif(is_string($_POST['name']))
      {
      $postname[] = $_POST['name'];
      foreach ($postname as $value)
      {
      if (ctype_digit($value))
      {
      $errors[] = 'Поле должно содержать только буквы';
      }
      }
      }

    • @VoLaND0303
      @VoLaND0303 2 ปีที่แล้ว

      if (empty($_POST['login'])) {
      $errors[] = ' Поле name пустое ';
      }elseif(isset($_POST['login']) ){
      $login = $_POST['login'];
      $login1 = str_split($login);
      for ($i=0; $i

  • @vlad9696vlad
    @vlad9696vlad ปีที่แล้ว

    Вот немного другое решение
    if (!empty($_POST)) {
    if (!empty($_POST['name'])) {

    preg_match_all('/\d+/',$_POST['name'],$matches);
    $matches= implode("",$matches[0]);
    if (!empty($matches))
    echo "Поле не должно содержать никакие цифры $matches";
    else {
    echo $_POST['name'];
    }
    }
    }

  • @PlayOnMax
    @PlayOnMax 3 ปีที่แล้ว

    Нихрена вообще с дз не выходит

  • @Oly20116
    @Oly20116 2 ปีที่แล้ว

    Всем привет!
    Может кому помогу кидаю свой вариант)
    if (!empty($_POST)) {
    if (empty($_POST['name'])) {
    $errors[] = 'Поле name пустое';
    }elseif (is_string($_POST['name'])) {
    $errors[] = 'В поле name содержит не буквы!';
    }

    }
    if (empty($_POST['age'])) {
    $errors[] = 'Поле age пустое';
    }elseif (!is_numeric($_POST['age'])) {
    $errors[] = 'Поле age содержит не цифры';
    }
    if (!empty($errors)) {
    foreach ($errors as $err) {
    echo "$err";
    }
    }

  • @BookwormYevgen
    @BookwormYevgen 4 ปีที่แล้ว +1

    проверка нуля на empty провалится

    • @galievramil1169
      @galievramil1169 3 ปีที่แล้ว

      На "" Надо проверять

  • @user-oq2wp5ge6f
    @user-oq2wp5ge6f 10 หลายเดือนก่อน

    Очень долго думал как и что надо ну и наверное смог(И надеюсь мой комментарий не удалиться сам собой а то Я написал для какого то видео вашего а там удалилось):

  • @mavvdies
    @mavvdies ปีที่แล้ว

  • @annateach1469
    @annateach1469 9 หลายเดือนก่อน

    if (!empty ($_POST)) {
    if(empty ($_POST["name"])) {
    $errors[] = "Напишіть своє ім'я, будь ласка.";
    }else{
    //$name = $_POST["name"];
    $name = str_split($_POST["name"]);
    foreach ($name as $key => $value) {
    if(is_numeric($value)){
    $errors[] = "Символ номер " . ($key+1) . " не є рядком";
    }
    }
    }
    if(empty ($_POST["age"])) {
    $errors[] = "Напишіть свій вік, будь ласка.";
    }elseif (!is_numeric($_POST["age"])) {
    $errors[] = "Поле 'вік' має містити ЛИШЕ цифри.";
    }
    if (!empty($errors)) {
    foreach ($errors as $err) {
    echo $err . "";
    }
    }
    }

  • @aleksandrsh3893
    @aleksandrsh3893 10 หลายเดือนก่อน

    Спасибо.