我正在尝试使用<form method="post">
构建一个简单的登录系统。我的笔记本电脑上的MAMP一切正常,但是当我将脚本上传到服务器(Windows)时,它不起作用;似乎$ _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>
_scripts / check_login.php :(我删除了除了一些var_dumps之外的所有内容以进行调试)
var_dump($_POST);
$loginEmail = trim($_POST['login-email']);
echo '<br>';
$loginPassword = ($_POST['login-password']);
var_dump($loginEmail);
echo '<br>';
var_dump($loginPassword);
当我提交表单时,无论我在文本字段中添加什么内容,我都会看到:
array(0) { }
string(0) ""
NULL
如果我在上述两个文件中将“post”的所有实例更改为“get”,一切正常。但我不想用get。 (如果我使用method =“post”提交表单,则$ _REQUEST不起作用。)
请注意,这一切都可以在localhost上运行,但不能在服务器上运行(运行Windows。)所以这似乎是服务器的问题,但我不知道是什么。您可以在此处查看PHPInfo:http://brailleapps.org/phpinf0.php
有什么想法吗?
编辑:解决了!见下文。答案 0 :(得分:4)
我最终解决了这个问题,我想发布一些可以解决的问题,以防其他人今后遇到同样的问题。
原来其中一个HTTP模块干扰了POST:
RadCompression
RadUploadModule
关闭这些模块后,POST工作正常。
(注意这是一个全新的应用程序,我知道没有任何现有的代码可能依赖于其中一个模块......关闭它们可能会产生我不知道的意外后果,YMMV。 )
答案 1 :(得分:2)
一种可能性是POST不是服务器上允许的动词:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/verbs
答案 2 :(得分:0)
我遇到了同样的问题,$ _POST为空/ NULL,在花了30分钟搜索SO和Google后,我终于找到了一个对我有用的解决方案。
由于我不知道如何更改MAMP的php.ini文件,因此编辑了我的htaccess以包含此内容:
php_value post_max_size 60M
php_value upload_max_filesize 60M
我现在可以使用提交的输入正确var_dump($ _ POST)。
参考链接:http://helpfulcoder.blogspot.ca/2011/01/empty-post-array-in-mamp.html