听起来很奇怪,我遇到的问题只发生在Chrome下。
以下是该方案:
我在控制器中有一个方法search
:
public function search()
{
$keyWord = htmlspecialchars(strip_tags($this->get['keyword']));
if(mb_strlen($keyWord) < 3){
$this->flashMessage->warning('keyword is too short');
redirect(SITE_ADDR . '/forum');
}
......
}
简单明了 - 如果$ _GET中的关键字少于3个字符 - 在$ _SESSION中保存一条消息并重定向。但是,如果我转到搜索页面(例如site.com/forum/search/?keyword=fff
)(注意$ _GET中有3个字符)并且开始刷新非常快,则会随机设置错误消息,但永远不会调用重定向功能。我尝试在exit();
之后插入$this->flashMessage->warning
来停止脚本,并且脚本停止没有问题但是从不调用重定向函数。对于1或2个字符,重定向没有问题。当错误消息甚至不应该在会话中设置时,仅适用于3个或更多字符。
这只发生在Chrome中。我试过Firefox和Opera,没有这样的问题。我试图隐姓埋名但没有改变。任何人都知道为什么会这样?
我没有使用框架或任何东西。