У меня есть форма, когда пользователь нажимает кнопку 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-скрипты?
Извиняюсь, если я сделал какие-либо синтаксические ошибки и большое спасибо за любую помощь, которую вы можете дать.
В коде есть несколько ошибок.
Вы смешиваете 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 с подготовленными операторами .
Несколько вещей:
Код:
if($_SERVER['REQUEST_METHOD'] == 'POST') { }
Вы пропустили имя кнопки отправки. Таким образом, никакая запись в массиве $ _POST / $ _ REQUEST не задана. В зависимости от настроек php вы можете использовать array_key_exists () для проверки индекса в массиве, поскольку isset может вызвать ошибку.