2014-03-27 46 views
3

我已經創建命中計數器,它工作正常,但問題是,我已經放置在該代碼構造是這樣的:把我的計數器代碼放在我的php類codeigniter中的哪裏?

// working code 
<?php 
class Welcome extends CI_Controller{ 
     function __construct() 
     { 
      hit_counter(); // works perfectly fine... 
     } 
     function view_blog() 
     { 
      // perfectly working code 
     } 
     function other_function() 
     { 
      // working fine 
     } 
} 

現在的問題是,每當用戶訪問網站它第一次運行代碼,但是當他訪問view_blog時,它也運行,當它在other_function上運行時,它再次運行,我只想運行一次,我的櫃檯只計算一次,之後他應該被計數,只有當他下次訪問網站時,不是在他訪問各種功能時。

回答

4

爲什麼不實施PHP本地會話?你也可以在CI的會議上進行實施。

<?php 
session_start(); //<--- Add here 
class Welcome extends CI_Controller{ 
    function __construct() 
    { 
     if(!isset($_SESSION['visited'])) 
     { 
     hit_counter(); // works perfectly fine... 
     $_SESSION['visited'] = true; //<--- Sets here the first time. 
     } 
    } 
+0

但如果他認爲後參觀讓我們說30秒 – avinashizhere

+0

他已經習慣了本地會話,所以當瀏覽器窗口關閉會話被銷燬如何當他消失了,因爲會話可能留破壞會議。 –

+0

由於一些奇怪的原因,它不工作,我已關閉瀏覽器和標籤也,但似乎沒有在下次訪問:( – avinashizhere

相關問題