【问题标题】:Php form post method not sending dataphp表单发布方法不发送数据
【发布时间】:2016-01-30 12:05:57
【问题描述】:

我有一个简单的 HTML 表单,它实际上在我的本地主机和少数服务器上运行良好。但是上次我把它放在我的代码中时,我明白它不会用POST 发送数据,尽管我已经写了method="post"。这是我第一次遇到这个问题,我不知道它是来自我身边还是来自服务器。 当我在本地主机中转储GLOBAL 参数$_SERVER 时,参数REQUEST_METHODPOST,但是当我将它转储到服务器上时它是GET。我也试过改.htaccess中的方法,但没有结果。 这是我的表格:

<form action="/auth/login" method="post">
      <div id="error">
            <?
              if (isset($errors)) {
                 foreach ($errors as $error) {
                      echo $error . "<br>";
                  }
               }
               if (isset($invalid)) {
                    echo $invalid;
                }
               ?>
      </div>
      <div id="login-box-name" style="margin-top:20px;">Login:</div>
      <div id="login-box-field" style="margin-top:20px;">
           <input name="login" class="form-login" type="text"/>
       </div>
       <div id="login-box-name">Password:</div>
       <div id="login-box-field">
            <input name="password" type="password" class="form-login"/>
        </div>
        <br />
        <input type="image" src="/images/login-btn.png" width="103" height="42" style="margin-left:90px;" />
   </form>

当我在服务器上打印 $_POST$_POST['login'] 时,它们是空的,尽管我已经传递了参数。

 public function action_login() {  
        echo "<pre>";
        var_dump($_SERVER); // this is returns server data, where REQUEST_METHOD is GET on current server, but POST in my local 
        var_dump($_POST); // this is empty
        echo "</pre>";
}

是来自服务器还是主机配置?

【问题讨论】:

  • 你可以使用任何框架吗???还是核心 php ??
  • 我正在使用 Kohana 框架,并且我在其他几个项目中使用了相同的代码并且效果很好,这个项目和代码也在我的本地服务器上运行,但它不发送 POST当前服务器上的数据。我的问题是这是否可以来自服务器配置?

标签: php html forms post get


【解决方案1】:

试试这个

<form action="auth/login" method="POST">
          <div id="error">
                <?
                  if (isset($errors)) {
                     foreach ($errors as $error) {
                          echo $error . "<br>";
                      }
                   }
                   if (isset($invalid)) {
                        echo $invalid;
                    }
                   ?>
          </div>
          <div id="login-box-name" style="margin-top:20px;">Login:</div>
          <div id="login-box-field" style="margin-top:20px;">
               <input name="login" class="form-login" type="text"/>
           </div>
           <div id="login-box-name">Password:</div>
           <div id="login-box-field">
                <input name="password" type="password" class="form-login"/>
            </div>
            <br />
            <input type="submit" src="/images/login-btn.png" width="103" height="42" style="margin-left:90px;" value="save" />
       </form>

【讨论】:

  • 对不起,它不起作用。输入类型图像类似于提交。所以结果是一样的。
  • 在您的操作中将此 /auth/login 更改为此 auth/login
  • 我的操作实际上比这里要长,但我根本没有写,关键是这段代码在我的本地服务器和其他几个服务器上工作,但它不在当前。我的问题是这是否可以来自服务器配置?
【解决方案2】:

您缺少关键字:type="submit"

【讨论】:

  • 我使用 type="image" 而不是提交,这与提交类似。我也尝试过提交,但结果是一样的
猜你喜欢
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 2014-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多