表单提交后,POST / GET数组为空

时间:2018-02-15 10:59:24

标签: php forms

我也尝试过使用POST和GET方法的代码,但我看不出这些方法的任何价值。提交表单后,页面刷新,但我的.php文件写出:Array ( )

我一直在寻找Chrome开发者工具的价值,但网络标签中没有“表单数据”,只有常规,响应标头和请求标头。

enter image description here

我的HTML代码:

<!--Modal: Login Form-->
      <form id="loginModal" name="loginModal" class="modal fade modal-full-height" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"
        data-backdrop="static" action="/main.php" method="POST">
          <div class="modal-dialog cascading-modal" role="document">
              <!--Content-->
              <div id="loginModalDiv" class="modal-content">
                  <!--Header-->
                  <div class="modal-header myModalHeader">
                      <h4 class="title"><i class="fa fa-user-lg"></i> Login:</h4>
                  </div>
                  <!--Body-->
                  <div class="modal-body">
                      <div class="md-form form-sm">
                          <i class="fa fa-envelope prefix"></i>
                          <input type="text" id="logF_email" name="email" class="form-control">
                          <label for="logF_email">E-mail address:</label>
                      </div>

                      <div class="md-form form-sm">
                          <i class="fa fa-lock prefix"></i>
                          <input type="password" id="logF_passw" name="password" class="form-control">
                          <label for="logF_passw ">Password:</label>
                      </div>

                      <div class="text-center mt-2">
                          <div id="errorLogin"></div>
                          <button id="btnLogin" type="submit" class="btn btn-default myModalBtn">Belépés <i class="fa fa-sign-in ml-1"></i></button>
                      </div>
                  </div>
                  <!--Footer-->
                  <div id="footerLogin" class="modal-footer">
                      <div class="options text-center text-md-center mt-1">
                          <p>You don't have an account? <a class="loginToSignUp myGreenClass" data-toggle="modal" href="#"> Sign up!</a></p>
                          <p>Forget <a class="forgetPassword myGreenClass" data-toggle="modal" href="#"> password?</a></p>
                      </div>
                      <button type="button" class="btn btn-outline-default waves-effect ml-auto myModalBtn" data-dismiss="modal">Close</button>
                  </div>
              </div>
              <!--/.Content-->
          </div>
      </form>

...和.php文件:

$email =""; $password ="";
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    print_r($_POST);
    $email     = $_POST['email'];
    $password = $_POST['password'];
    print_r($email);
    print_r($password);
    if ($email=="") {echo "<br> 'no data'";}
        else        {echo "Your email: ".$email;}
  }

我是初学PHP和表单处理,所以我想我可能会错过一些东西。 我试图避免琐碎的错误,因此我的代码包含:

  • 表格的行动和方法原则
  • 输入字段的名称属性
  • type="submit"提交按钮

if ( $_POST ){
if (!empty($_POST)){

也无效

知道什么是错的吗?

4 个答案:

答案 0 :(得分:3)

将您的表单方法从GET更改为POST,因为您的后端正在过滤POST方法。

答案 1 :(得分:2)

在您的表单标记方法中,GET应为POST。如果您没有提及方法,它将自动采用GET方法。因此,您希望从POST获取数据,然后您应该在表单标记中使用POST方法。从表单标记中删除GET

<form id="loginModal" name="loginModal" class="modal fade modal-full-height" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"
        data-backdrop="static" action="/main.php" method="POST">

答案 2 :(得分:1)

将表单的方法更改为post来代替get

method="GET"

method="post"

在后端,你正在寻找请求方法作为帖子。在前端和后端都需要相同。

答案 3 :(得分:0)

好的,我发现了错误!

在我发送值之前,我在提交函数中使用jQuery验证了数据。

$("#loginModal").submit(function(){
...

问题是我在提交表单之前已禁用该表单,因为我想对用户做出一些预防措施,直到服务器没有响应才能执行任何操作。
(例如:如果连接缓慢,则需要很长的等待时间)

...
$('#loginModalDiv *').prop('disabled',true);
$('#footerLogin').hide();
return true;}

当我在返回之前剪切最后两行时(因此表单保持启用状态),提交函数能够从输入字段发送数据。

<强>结论:
所以,...对于每个不认识的人(像我之前一样),POST和GET方法不会从表单的禁用部分(如&lt; div&gt;)发送任何数据。 嗯......很高兴知道! :)