php – 使用Slim Framework重定向到另一个页面时出错

我想重定向到一个页面(例如,error.php),具体取决于我网站中表单中的信息.我设法记录这样的错误:

if ($date > $curdate) {
    return $response
        ->withStatus(406)
        ->withHeader('Content-Type', 'text/html')
        ->write('You can\'t select dates in the future!');
}

我该怎么做才能将您发送到具有该错误的页面,而不是在网络选项卡中记录/请求它?

现在我明白了:

Request URL:http://raspberrypi/chartAPI/api/{id}/{date1}/{date2}
Request Method:POST
Status Code:406 Not Acceptable
Remote Address:192.168.0.80:80
Referrer Policy:no-referrer-when-downgrade

这几乎按预期工作.我想要做的是将它发送到“http://raspberrypi/chartAPI/error/406”(例如),并将内容显示在名为406.php(或error406.php,或error.php或任何调用它)的文件中.

我设法做了一些事情:

return $response->withRedirect("error.php");

但我明白了:

Request URL:http://raspberrypi/chartAPI/api/{id}/{date1}/error.php
Request Method:GET
Status Code:405 Method Not Allowed

而苗条抛出这个错误:

Method not allowed. Must be one of: POST

为什么删除{date2}?为什么要求POST方法呢?

这个问题是this one的延续,但是由于这个网站处理这些“旧”问题的方式,我被推倒了,不管我放了多少编辑,它都不再受到任何关注.

解决方法:

使用withRedirect时,请使用路由URL而不是文件进行浏览

错误是关于使用GET方法路由需要POST

我认为这是因为您使用文件重定向到,然后该方法将是仅GET而不是POST或其他类似浏览器

我不知道为什么你在URL中传递参数时使用POST?

上一篇:php – 几个请求同时导致错误的SQL结果


下一篇:子域上的Slim PHP REST API的.htaccess配置?