Intereting Posts
Как я могу добавить элемент в Laravel Eloquent Collection по индексу? Как найти разницу в днях между двумя датами Установка прав пользователя | Команда Artisan не запускается в коде, но отлично работает в командной строке SELECT и заблокируйте строку, а затем UPDATE Отправлять почту php с помощью emails.txt и настраиваемого сообщения из message.txt Zend Form – динамические добавления подформ файл поврежден, когда щелкните ссылку для загрузки Получить переменную php в javascript конвертировать любую строку даты в метку времени без часового пояса html5 <input type = "file" accept = "image / *" capture = "camera"> показывать как изображение, а не кнопку выбора файла Как найти недостающую стоимость между двумя таблицами Mysql laravel – Не удается получить сеанс в конструкторе контроллера PHP-форму отправить Как исправить код состояния сервера: 302 Найден SQL Inject Me Firefox Addon Печать нового <div> при изменении итерации идентификатора внутри php while loop из результата MySQL

Отправить форму в файл php

У меня есть форма, когда пользователь нажимает кнопку submit, мне нужен файл php для запуска. ниже представлена ​​форма и файл php.

<form action="php_scripts/test.php" method="POST"> <input name="feature" type = "text" placeholder="Feature" /> <input name="feature2" type = "text" placeholder="Feature2" /> <input type="submit" value = "submit"/> </form> 

test.php

 <?php if( isset($_GET['submit']) ) { $feature = $_POST['feature']; // do stuff (will send data to database) } ?> 

Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю «Отправить» на форме,

 if( isset($_GET['submit']) ) 

Всегда возвращает false.

Может ли кто-нибудь объяснить, почему это так? Я полностью не понял, как реализовать форму отправки данных в php-скрипты?

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

Related of "Отправить форму в файл php"

В коде есть несколько ошибок.

Вы смешиваете GET с методами POST. Кроме того, добавьте значения на свои входы, и ваша кнопка отправки не названа, которую вы пытаетесь использовать в качестве условного оператора.

HTML

 <form action="php_scripts/test.php" method="POST"> <input name="feature" value="feature" type = "text" placeholder="Feature" /> <input name="feature2" value="feature2" type = "text" placeholder="Feature2" /> <input type="submit" name="submit" value = "submit"/> </form> 

PHP

 <?php if( isset($_POST['submit']) ) { $feature = $_POST['feature']; $feature2 = $_POST['feature2']; // do stuff (will send data to database) } ?> 

Sidenote: Вы можете / должны также проверять пустые значения.

 if(isset($_POST['submit']) && !empty($_POST['feature']) && !empty($_POST['feature2']) ) {...} 

Примечания:

Видя, что вы намереваетесь отправить в БД:

Надеюсь, вы планируете использовать mysqli с подготовленными инструкциями или PDO с подготовленными операторами .

Несколько вещей:

  • вы используете $ _GET вместо $ _POST
  • isset ($ _ POST ['submit']) не является хорошей проверкой, не каждый браузер отправляет кнопку отправки в свой запрос. (Помимо того факта, что вы даже не назвали кнопку отправки, так что она не будет появляться в любом браузере, поскольку она стоит сейчас.)
  • лучше использовать:

Код:

 if($_SERVER['REQUEST_METHOD'] == 'POST') { } 

Вы пропустили имя кнопки отправки. Таким образом, никакая запись в массиве $ _POST / $ _ REQUEST не задана. В зависимости от настроек php вы можете использовать array_key_exists () для проверки индекса в массиве, поскольку isset может вызвать ошибку.