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

时间:2017-04-26 08:49:09

标签: php slim slim-3

我想重定向到一个页面(例如,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的延续,但是由于这个网站如何处理这些" old"问题,我被推倒了,不管我放了多少编辑,它都不再受到任何关注。

1 个答案:

答案 0 :(得分:1)

当您使用withRedirect时,使用路线网址而不是文件进行浏览

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

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

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