2013-08-05 109 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代碼,如果所請求的文件不存在。