2

我已经创建了一个计数器,它工作正常,但问题是,我已经将该代码放在构造函数中,如下所示:

// 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,它也会运行,当 on 时other_function,它会再次运行,我想做的就是我的计数器只计算他一次,之后他应该只在他下次访问该网站时计算,而不是在他访问各种功能时计算。

4

1 回答 1

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.
        }
    }
于 2014-03-27T05:16:57.127 回答