2013-08-05 75 views
1

经过几个小时的努力并重新阅读我的整个代码后,我终于明白什么是我的用户活动表中记录的额外请求。在MVC中忽略favicon.ico请求PHP

基本上我的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()); 
} 
+0

发布您的代码。 – Gadonski

+0

代码?我只需要一种方法来忽略对favicon.ico – GGio

+1

请求的请求的日志条目的代码。 – Pitchinnate

回答

1

只需选中REQUEST_URI为favicon.ico的:

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

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