代码之家  ›  专栏  ›  技术社区  ›  meleyal

如何在每次页面加载时增加一个计数器(在PHP中)?

  •  2
  • meleyal  · 技术社区  · 16 年前

    我希望当用户访问某个站点的X个页面时,会发生特定的操作

    我是否必须在外部存储计数器(在txt文件或数据库中)?

    我想不出一种方法将计数器设置为0,然后在每次页面加载时递增它。计数器总是被重置为0,或者我遗漏了什么明显的东西?

    6 回复  |  直到 16 年前
        1
  •  14
  •   TJ L    16 年前

    使用起来很简单 $_SESSION 用于存储个人已查看的页面数的数据。

    $_SESSION['pageviews'] = ($_SESSION['pageviews']) ? $_SESSION['pageviews'] + 1 : 1;
    
        2
  •  1
  •   Frank Farmer    16 年前

    最简单的方法是使用PHP的 session storage .

    session_start();
    @$_SESSION['pagecount']++;
    

        3
  •  0
  •   Arve Systad    16 年前

    您可以在用户首次访问您的页面时启动会话,然后在用户每次重新加载/访问子页面时增加该值。另一种方法是,在每个页面上都有一个隐藏字段,并检索其值,增加值并将其发布到新页面。

    <input type="hidden" value="2" id="blabla" />
    
        4
  •  0
  •   Travis    16 年前

    简短的回答是肯定的,您确实必须将其保存在外部,因为php(默认情况下)具有零内存持久性策略。这基本上意味着,一旦php脚本运行,内存中就什么都没有了。

    对于低流量站点,您可能需要考虑一个简单的txt文件,在其中进行读取、增量和写入。对于流量更高的站点,一个非常简单的mysql表可能会起作用。

        5
  •  0
  •   David    16 年前

    你是否已经有办法确定用户是谁(比如用户名和密码),即使他们离开网站,改天再来?或者你只是对跟踪访问者看到的页面数量感兴趣,并在第X个页面上做一些特别的事情。

    如果是第二个,那么您已经有了一个会话变量,可以在其中存储计数器。

    $_SESSION['views'] = $_SESSION['views'] + 1
    if($_SESSION['views'] == x) ...
    
        6
  •  -2
  •   Josh Curren    16 年前

    if( isset($count) )
    {
       $count = $count + 1;
    }
    else
    {
       $count = 1;
    }