当用户单击提交时,它会向脚本发送 post 和 get 请求。 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 开发工具中看到的内容:
最佳答案
您不发送 POST 和 GET - 仅发送 POST。 然后,您的服务器以重定向 (302) 进行响应,这使您的浏览器通过 GET 加载给定的 URL。此时,您的数据丢失(由于重定向)并且数组为空。问题是为什么你的服务器指示重定向。 最可能的原因是您的 htaccess 文件。可以发一下吗?
关于php - HTML 表单发送 get 和 post。使用 302 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40410232/