Проверка на наличие простой формы в PHP
У меня есть простая форма входа в систему, в верхней части этой страницы я проверяю отправляемую форму, могу ли я обработать имя входа, если оно было отправлено.
if (!empty($_POST)) {
echo "form submitted";
}
else {
?>
<form style="margin-bottom: 0px !important;" class="form-horizontal" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<div class="content">
<h4 class="title">Login Access</h4>
<div class="form-group">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user"></i></span>
<input type="text" placeholder="Username" id="username" class="form-control">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock"></i></span>
<input type="password" placeholder="Password" id="password" class="form-control">
</div>
</div>
</div>
</div>
<div class="foot">
<button class="btn btn-primary" data-dismiss="modal" type="submit">Log in</button>
</div>
</form>
<?php } ?>
Я протестировал с var_dump($_POST); но он не отображает никаких пост-переменных при отправке. Я использую XAMPP в своей производственной среде, так что мне интересно, в этом ли проблема?
2 ответа
По умолчанию формы отправляют свои значения через GET
, Чтобы изменить это, вам нужно установить method
атрибут <form>
тег к POST
<form method="post" style="margin-bottom: 0px !important;" class="form-horizontal" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
^^^^^^^^^^^^^^^
HERE
Как уже указывал Квентин, вам также не хватает name
атрибут в ваших элементах формы. Так что даже ваш $_GET
будет пустым, если вы проверите это.
Форма не имеет method="post"
, так что вы делаете запрос GET и $_POST
будет пустым.
Даже если это не так, ни один из ваших элементов управления формой не имеет name
атрибуты, поэтому они не могут быть успешными (поэтому не будут генерировать какие-либо данные для помещения в форму).