我有一个简单的HTML表单,它实际上在我的localhost和少数服务器上运行良好。但是上次我把它放在我的代码中时,我知道它不会使用POST
发送数据,尽管我写了method="post"
。这是我第一次遇到这个问题,我不知道它是来自我的身边还是来自服务器。
当我在我的localhost中转储GLOBAL
param $_SERVER
时,参数REQUEST_METHOD
为POST
,但当我将其转储到服务器上时,它是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']
时,在服务器上它们是空的,虽然我已经通过了params。
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>";
}
是来自服务器还是托管配置?
答案 0 :(得分:-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>
答案 1 :(得分:-1)
你缺少关键词:type =&#34;提交&#34;