当用户点击提交时,它会向脚本发送一个发布和获取请求。 Post返回302 Found,Get返回200,但print_r在提交表单后显示一个空数组。我无法弄清楚为什么会这样。
这是在使用PHP 5.4和Apache 2.4的AWS Linux实例上运行。
以下是代码:
<?php
print_r($_REQUEST);
?>
<!doctype html>
<html>
<meta charset="UTF-8" />
<title>Login</title>
<head>
</head>
<body>
<p>Please login:</p>
<form action="<?php echo $_SERVER['SCRIPT_NAME'];?>" method="post">
<table>
<tr>
<td>
username
</td>
<td>
<input type="text" name="username" id="username" style="width:400px;"> (case sensitive)
</td>
</tr>
<tr>
<td>
password
</td>
<td>
<input type="password" name="password" id="password" style="width:400px;">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="submit">
</td>
</tr>
</table>
</form>
</body>
</html>
当我点击提交时,这就是我在FF开发工具中看到的内容:
答案 0 :(得分:4)
你没有发送POST和GET - 只有POST。 然后,您的服务器会使用重定向(302)进行响应,这会使您的浏览器通过GET加载给定的URL。此时您的数据将丢失(由于重定向)并且数组为空。问题是您的服务器指示重定向的原因。 最可能的原因是你的htaccess文件。你能发好吗?