【发布时间】:2022-02-13 23:17:14
【问题描述】:
于是nginx将站点的所有请求发送到index.php
location / {
try_files $uri $uri/ /index.php;
}
因此,当我将我的发布请求作为发布请求发送到/login-post 并尝试获取发布数据时。数组总是空的,我不明白我错过了什么,因为我向正确的 URL 发帖?但是post数据不存在?
表格:
<form class="form-signin text-center" action="/login-post" enctype="multipart/form-data" method="post" style="max-width: 400px">
<h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
<input type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
<input type="password" id="inputPassword" class="form-control" placeholder="Password" required>
<div style="width: 100%; display: flex; align-content: end; flex-direction: row-reverse;">
<button class="btn btn-lg btn-primary btn-block" style="width: 100px" type="submit">Sign in</button>
</div>
<p class="mt-5 mb-3 text-muted">© 2017-2018</p>
</form>
应该记录来自 (index.php) 的帖子数据的 php 代码
$request = $_SERVER['REQUEST_URI'];
echo $request;
switch ($request) {
case '/' :
(new HomeController)->index(); // this works
break;
case '/login' :
(new LoginController())->index(); // this works
break;
case '/login-post':
print_r($_POST); <---- this is always empty
break;
default:
http_response_code(404);
echo "404";
break;
}
我不知道出了什么问题?或者为什么我看不到帖子数据。
【问题讨论】:
-
您是否尝试过检查浏览器的网络控制台?是否包含要发布的数据?
-
另外,为什么你需要
multipart/form-data来获得一个带有两个文本字段的简单表单? -
发布请求为 200,网络选项卡中的表单数据主体为空,对于第二个问题,我在 mb 上为此自动完成,但在这种情况下,这对发布请求没有影响它自己
-
好吧,如果正文为空,则不会发送任何内容,也无法从该空内容中读取任何内容。如果这没有影响,请删除
multipart/form-data以检查这是否解决了问题 -
我删除了
multipart/form-data,帖子数据仍然是空的