我有这样的表格:
<form action="" method="post" id="login_form">
<input type="text" name="log_login_form"/>
<br/>
<input type="password" name="log_password_form"/>
<br/>
<button type="submit" value="Login" id="log_submit" disabled="disabled" name="action" data-toggle="tooltip" data-placement="bottom">Login</button>
</form>
提交后页面刷新,但php服务器没有获取任何数据。 var_dump($_POST);
会返回array(0) {}
。
表单action=""
表示处理表单提交的index.php
。
(更改为action="index.php"
没有帮助)
该按钮具有一些额外属性,用于禁用所有输入的脚本:
login_form.find('input').on('keyup blur', function () {
if (login_form.valid()) {
$('#log_submit').prop('disabled', false);
} else {
$('#log_submit').prop('disabled', 'disabled');
}
});
删除脚本并将按钮更改为常规按钮也无济于事,所以我猜问题不在于此。
我也尝试使用javascript从外部按钮提交:
<button onclick="document.getElementById('login_form').submit();"></button>
(结束了相同的行为。)
一次性尝试(我读过,可能有用)是在关闭标签之前添加/删除/
斜杠。
我的php配置会出现问题吗?
感谢您的帮助。
答案 0 :(得分:0)
感谢Craig的答案,我能够找到问题所在。由于表单数据存在,GET方法按预期工作。
原来它是由我正在使用的IDE中的错误引起的。这段代码解决了这个问题:
$_POST = array(); //workaround for broken PHPstorm
parse_str(file_get_contents('php://input'), $_POST);
(信用:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206999125/comments/203891884)