Проверка на наличие простой формы в 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 атрибуты, поэтому они не могут быть успешными (поэтому не будут генерировать какие-либо данные для помещения в форму).

Другие вопросы по тегам