Я использую внешний php-файл в поле «действие» моей HTML-формы, чтобы действия, упомянутые в файле php, выполнялись при нажатии кнопки «Отправить».PHP isset ('submit') всегда возвращается FALSE
Для этого я использовал функцию 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>
Моя форма-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'])' в своем заявлении. – Qirel
См. Http://stackoverflow.com/q/4559925/476 – deceze
Кроме того, примечание по стандартам безопасности и программирования: 'mysql_ *' функции устарели с PHP 5.5 (и ** полностью удалены ** в PHP 7), и вы должны [прекратить использовать их] (http://stackoverflow.com/q/12859942), если сможете. Вы должны выбрать другой API, который позволяет использовать подготовленные операторы (которые вы действительно должны * при работе с пользовательским вводом), например 'mysqli_ * 'или PDO - см. [Выбор API] (http://php.net /manual/en/mysqlinfo.api.choosing.php). В принципе, вы широко открыты для SQL-инъекции - читайте в [Как я могу предотвратить SQL-инъекцию в PHP?] (Http://stackoverflow.com/q/60174/) – Qirel