@PabloEscobar213

Php не видит name из html. Уверен, что все верно написано. Что делать?

Написал простенький сайт, который должен отправлять данные в бд, но пхп ничего не видит и я не понимаю почему.
Облазил множество разных ресурсов, но решения проблемы так и не нашел
<form action="index.php" method="POST">
            <section class="Zakaz">
                <div class="container">
                    <div class="row">
                        <div class="col-12">
                            <select name = "type" class="form-select" aria-label="Default select example">
                                <option selected>Выберите тип задания(Если тип не будет выбран, то ваше задание попадет в небытие)</option>
                                <option value="1">Практика</option>
                                <option value="2">Практическая</option>
                                <option value="3">Отчет</option>
                                <option value="4">База данных</option>
                            </select>
                            <div class="mb-3">
                                <label for="exampleFormControlInput1" class="form-label">Почта</label>
                                <input type="email" name ="email" class="form-control" id="exampleFormControlInput1" maxlength="200" placeholder="name@example.com">
                              </div>
                              <div class="mb-3">
                                <label for="exampleFormControlInput1" class="form-label">Телеграм(@...)</label>
                                <input name="tg" type="text" class="form-control" id="exampleFormControlInput1" maxlength="200" placeholder="@name">
                              </div>
                              <div class="mb-3">
                                <label for="exampleFormControlInput1" class="form-label">Опишите задание(не более двухста символов)</label>
                                <input name = "question" type="text" class="form-control" id="exampleFormControlInput1" maxlength="200" placeholder="Ваше задание...">
                              </div>
                              <div class="mb-3">
                                <label for="exampleFormControlInput1" class="form-label">Дедлайн(за срочность идет доплата в 300руб)</label>
                                <input name = "deadline" type="date" class="form-control" id="exampleFormControlInput1" placeholder="">
                              </div>
                        </div>
                    </div>
                </div>
            </section>
        </form>


<?php

include('index.html');

$mysqli = @new mysqli('localhost', 'root', '', 'money_dealer');
  if (mysqli_connect_errno()) {
    echo "Подключение невозможно: ".mysqli_connect_error();
  }

  var_dump($_POST);

  $type = $_POST['type'];
  $email = $_POST['email'];
  $tg = $_POST['tg'];
  $question = $_POST['question'];
  $deadline = $_POST['deadline'];


?>
  • Вопрос задан
  • 268 просмотров
Решения вопроса 2
yesbro
@yesbro
Думаю, помогаю думать
Ну видно же что человек только начал разбираться, что вы на него все набросились.

PabloEscobar213, смотри, у тебя тут куча ошибок. Начнем с азов.

1) Форма считается отправленной только после того как ты нажал кнопку типа submit и данные ушли на сервер (есть другие способы, но мы их сейчас трогать не будет). Кнопку, как вижу, ты уже добавил. Но теперь надо на нее кликнуть. что бы данные из формы ушли на сервер.

2) Дальше. Вывод формы в браузер и обработка/отправка данных это разные действия. И они могут быть в разных файлах. Например если бы у тебя форма была в index.html, а отправлял ты ее в send.php, а потом делал бы редирект обратно на форму, то все было бы проще.

Но ты сделал все в одном файле. Значит что? Значит в коде надо понимать когда именно ты отправляешь данные. Тебе про это выше писали. Сейчас ты видишь ошибки на этапе отображения формы, а не отправки. В коде надо проверять что суперглобальный массив $_POST не пустой или что ты отправляешь данные через метод POST.

if ($_POST) {
  // Здесь пишешь код подключения к базе и отправке
}
Ответ написан
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
при нормальном раскладе должна быть кнопка submit для отправки формы, а также проверка
if (!empty($_POST)) {
    // действия с полученными данными
}

т.к. по умолчанию страница загружается GETом
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы