1

经过几个小时的努力并重新阅读了我的整个代码,我终于弄清楚了在我的用户活动表中记录的额外请求是什么。

基本上,我的 MVC 结构会记录用户发出的每个请求。因此,如果用户转到索引页面或进行 ajax 调用,所有内容都记录在我的表中,但问题是在每个请求中它都记录了2 条记录并且无法理解原因。

后来我添加了一些调试var_dumps,发现第二个日志实际上是文件请求:/favicon.ico

我将如何在我的路由器中忽略它,以便它不会记录此类文件请求并仅加载文件。我确实需要 favicon.ico 并想使用它,但不希望它成为请求的一部分,也不想在每个请求上记录它。

现在每页点击记录 2 行,1 行是正确的,第二行是 favicon.ico。

如果有人有同样的问题,请帮忙。

编辑:

请注意,如果我在我的根文件夹中添加一些 favicon.ico,那么它只会发出 1 个请求。所以如果我没有 favicon.icon 那么它会发出 2 个请求。是否可以检查 favicon.ico 是否不存在不要提出额外的请求。

至于要求这里是我在我的 FrontController 中的日志代码:

if ($user->isLoggedIn()) {
   $m_useractivity = ModelFactory::Create(array('userActivity', $user->getUID()));
   $log_id = $m_useractivity->logActivity($user->getUID(), $_SERVER['REQUEST_URI'], $a, $p, $request->getParams(), $request->browser(), $request->browserVersion(), $request->platform(), '', $request->ip(), $request->referer(), $request->getRequestMethod(), $request->type());
}
4

1 回答 1

1

只需检查 favicon.ico 的 REQUEST_URI:

if ($user->isLoggedIn() && strpos($_SERVER['REQUEST_URI'],'favicon.ico') === false) {
   //your code
}

您也可以使用 .htaccess 来防止这种类型的请求完全击中您的控制器。通常,如果请求的文件不存在,它应该只命中您的 php 代码。

于 2013-08-05T17:23:25.007 回答