【问题标题】:POST/GET array is empty, after form submitPOST/GET 数组为空,表单提交后
【发布时间】:2018-02-15 10:59:24
【问题描述】:

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

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

我的 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)){

也不工作

知道有什么问题吗?

【问题讨论】:

  • 将 method="GET" 更改为 method="post"
  • 这是post,我也试试get和post。
  • 它们都不起作用
  • 我的意思是如果我改变 php 和 html 来发布
  • 下面所有的答案都是一样的;)

标签: php forms


【解决方案1】:

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

【讨论】:

  • 我试过post and get,忘记退了,顺便说一句他们都没有工作
【解决方案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">

【讨论】:

  • 我试过post and get,忘记退了,顺便说一句他们都没有工作
  • 表单提交后是否点击返回按钮?
  • 你到底想达到什么目的?
  • 在表单上有两个输入邮箱和密码。我用javascript验证了它们,我想在php中做同样的事情,然后在数据库中检查它。实际上是一个完整的网络应用程序登录和注册过程。
【解决方案3】:

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

method="GET"

method="post"

在后端,您正在寻找作为 post 的请求方法。前端和后端都需要相同。

【讨论】:

  • 我试过post and get,忘记退了,顺便说一句他们都没有工作
【解决方案4】:

好的,伙计们,我发现了错误!

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

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

问题是我在提交表单之前禁用了表单,因为我想对用户采取一些预防措施,除非服务器没有响应,否则用户将无法执行任何操作。
(例如:如果连接慢,则等待时间很长)

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多