PHP$\u POST不起作用,但$\u可以正常工作

PHP$\u POST不起作用,但$\u可以正常工作,php,forms,post,Php,Forms,Post,我正在尝试使用构建一个简单的登录系统。在我的笔记本电脑上的MAMP上一切正常,但当我将脚本上传到服务器(Windows)时,它就不工作了;$\u POST数组似乎是空的 我把所有的东西都注释掉了,但还是不起作用 index.php: <form id="login-form" method="POST" action="_scripts/check_login.php"> Email Address <input name="login-email" type="text" i

我正在尝试使用
构建一个简单的登录系统。在我的笔记本电脑上的MAMP上一切正常,但当我将脚本上传到服务器(Windows)时,它就不工作了;$\u POST数组似乎是空的

我把所有的东西都注释掉了,但还是不起作用

index.php:

<form id="login-form" method="POST" action="_scripts/check_login.php">
Email Address
<input name="login-email" type="text" id="login-email">
Password
<input name="login-password" type="text" id="login-password">
<input type="submit" name="Submit" id="login-button" value="Login">
</form>
如果我将上述两个文件中的“post”的所有实例都更改为“get”,则一切正常。但我不想用get。($\如果我使用method=“post”提交表单,请求也不起作用)

注意,这一切都可以在本地主机上正常工作,但在服务器(运行Windows)上不行。因此,服务器似乎有问题,但我不知道是什么问题。您可以在此处看到PHPInfo:

有什么想法吗


编辑:解决了!请参见下文。

一种可能性是,POST在服务器上不是一个允许的动词:


我终于把它修好了,我想我还是在这里发布一下它的工作原理吧,以防将来有人遇到同样的问题

结果发现其中一个HTTP模块干扰了POST:

放射性压缩
无线电上传模块

关闭这些模块后,POST工作正常


(注意,这是在一个全新的应用程序上,我知道没有任何现有的代码可能依赖于其中一个模块……关闭它们可能会产生我不知道的意外后果,YMMV。)

我也遇到过同样的问题,$\u POST为空/NULL,在花了30分钟搜索SO和Google之后,我终于找到了一个适合我的解决方案

因为我不知道如何更改MAMP的php.ini文件,所以我编辑了htaccess以包含以下内容:

php_value post_max_size 60M
php_value upload_max_filesize 60M
现在,我可以使用提交的输入进行var_dump($_POST)


参考链接:

对于POST请求,
$\u服务器
包含哪些内容?你试过打字吗?FastCGI客户端是否允许接收?我们遇到了相同的问题,但一旦我们移动到live server,ajax post就无法工作。经过长时间的斗争,我们发现服务器的mod rewrite模块关闭了。一旦打开,一切都很好。所以检查一下。但据我所知,这与POST和mod rewrite无关。试一下。这可能是内容类型的问题。如果未识别内容类型或缺少内容类型,则
$\u POST
为空。请尝试设置
if(空($\u服务器['CONTENT\u TYPE']){$\u服务器['CONTENT\u TYPE']=“application/x-www-form-urlencoded”;}
。而
var\u dump(文件获取内容)是什么php://input'));说?检查这个线程:你能检查一下_SERVER[“REQUEST\u METHOD”]变量以确保它被有效地作为Post发送吗?那篇文章是关于IIS的;问题是关于Apache.DOH的。我把问题看得太快了。我看到了Windows,并假设它是IIS。@AarolamaBluenk-PHPinfo几乎肯定地说它是IIS。确实如此。Microsoft IIS/7.5.Meh,保持该评论的活跃性,我怀疑这会对其他人有所帮助。如何在MAMP中关闭这些模块,你能解释一下吗
array(0) { }
string(0) ""
NULL
php_value post_max_size 60M
php_value upload_max_filesize 60M