我正在尝试使用<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_dump)
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也无效。)请注意,在本地主机上,所有这些功能都可以正常工作,但在运行Windows的服务器上则不行。因此,似乎是服务器的问题,但我不知道是什么问题。您可以在此处查看PHPInfo:http://brailleapps.org/phpinf0.php 有任何想法吗?
编辑:已解决!请参见下文。
$_POST
是空的。请尝试设置if(empty($_SERVER['CONTENT_TYPE'])) {$_SERVER['CONTENT_TYPE'] = "application/x-www-form-urlencoded";}
。还有var_dump(file_get_contents('php://input'));
的输出是什么? - Quasdunkif(empty($SERVER[...
行,但似乎没有产生任何影响。你的第二段代码输出了string(0) ""
。 - GMA