Я использую внешний php-файл в поле «действие» моей HTML-формы, чтобы действия, упомянутые в php-файле, выполнялись при нажатии кнопки «Отправить».
Для этого я использовал функцию isset()
в файле php.
Однако я обнаружил, что функция isset
всегда возвращает FALSE
, что приводит к выполнению оператора else (как видно из журнала консоли).
Если я уберу функцию isset()
(и, следовательно, операторы if-else
), код заработает прекрасно.
Не могли бы вы проверить проблему в моем коде?
Также я видел в других сообщениях, что мне нужно использовать какой-то другой аргумент вместе с isset()
, например,
if(isset($_POST['submit']) && !empty($_POST["xyz"]))
это вообще обязательно?
P.S.: Я все еще нахожусь на начальном этапе разработки страницы, и поэтому я прошу вас игнорировать проблемы безопасности моего кода, существование которых я подтверждаю. :)
Мои субкоды:
Моя HTML-форма:
<form id="info-form" method="POST" action="form-submit.php">
<label for="Name">What is your Name? </label>
<input required type="text" name="name" placeholder="Enter your full name here." />
<label for="Email">What is your email ID? </label>
<input required type="email" name="email" placeholder="[email protected]" />
<label for="mobile">What is your 10-Digit Mobile Number? </label>
<input required type="text" name="mobile" maxlength="10" />
<button name="submit-form" type="submit" class="btn btn-lg btn-success"><i class="fa fa-paper-plane" aria-hidden="true"></i>
Submit
</button>
<button type="reset" class="btn btn-lg btn-warning"><i class="fa fa-undo" aria-hidden="true"></i>
Reset
</button>
</form>
Мой файл form-submit.php:
<?php
if(isset($_POST['submit-form']))
{
require("database-connect.php");
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$sql = "INSERT INTO tbl_details ".
"(name,email_id,mobile_number) ".
"VALUES ".
"('$name','$email','$mobile')";
mysql_select_db('db_info');
$return = mysql_query( $sql, $connect );
if(! $return )
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($connect);
}
else
{
echo "Not Set\n";
}
?>
submit
!=submit-form
(название вашей кнопки отправки). Итак, вы хотите использоватьisset($_POST['submit'-form'])
в своем заявлении. - person Qirel   schedule 15.09.2016mysql_*
функции устарели, начиная с PHP 5.5 (и полностью удалены в PHP 7), и вам следует прекратите их использовать, если можете. Вам следует выбрать другой API, который позволяет использовать подготовленные операторы (что вам действительно следует при работе с пользовательским вводом), напримерmysqli_*
или PDO — см. выбор API. По сути, вы широко открыты для SQL-внедрения - прочитайте Как я могу предотвратить SQL-внедрение в PHP? - person Qirel   schedule 15.09.2016var_dump($_POST);
?isset($_POST['submit-form'])
должно нормально работать с вашей формой. Не проверяйте!empty($_POST['submit-form'])
, так как в настоящее время оно передается как пустое значение. - person Rocket Hazmat   schedule 15.09.2016submit-form
отсутствует. Оно должно быть представлено как пустое значение. (Это IE, не так ли?) - person Rocket Hazmat   schedule 15.09.2016submit-form
, что я и сделал... - person Rocket Hazmat   schedule 15.09.2016