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

如何在每次页面加载时增加一个计数器(在PHP中)?,php,count,increment,Php,Count,Increment,我希望当用户访问某个站点的X个页面时,会发生特定的操作 我是否必须在外部存储计数器(在txt文件或数据库中) 我想不出一种方法将计数器设置为0,然后在每次页面加载时递增它。计数器总是会被重置为0,或者我是否遗漏了一些明显的内容?您可以使用if语句检查它是否已被设置 if( isset($count) ) { $count = $count + 1; } else { $count = 1; } 您还可以使用get方法将计数放入URL中,这样您就不必将计数写入文件或数据库。您可以在用

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

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


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

您可以使用if语句检查它是否已被设置

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

您还可以使用get方法将计数放入URL中,这样您就不必将计数写入文件或数据库。

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

<input type="hidden" value="2" id="blabla" />

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


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

只需使用
$\u SESSION
数据来存储个人浏览的页面数量就非常简单了

$_SESSION['pageviews'] = ($_SESSION['pageviews']) ? $_SESSION['pageviews'] + 1 : 1;

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

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

$_SESSION['views'] = $_SESSION['views'] + 1
if($_SESSION['views'] == x) ...

最简单的方法是使用PHP的


PHP会自动向用户发送会话cookie,并将$\u会话的内容透明地存储在与此cookie关联的平面文件中。你真的不需要为这个问题推出你自己的解决方案。

你的第二种方法只有在每次点击都是一篇文章的情况下才有效,如果用户重新加载一个页面、在单独的选项卡中打开多个页面、点击后退按钮等,第二种方法就会中断。如果用户点击后退按钮或打开多个选项卡,那么将计数放入URL就不起作用,并导致搜索引擎出现重复内容问题。True。我没有想过。htxt:确保在尝试使用$\u SESSIONhtxt之前调用session\u start()。在输出任何数据之前,必须先调用session\u start()。数据可能是从服务器发送的头文件,一些回音或打印在您的代码中。您可以对cookie做类似的操作吗?我使用的是Wordpress,它似乎在侵蚀我的会话变量。你可以使用$\u COOKIES superglobal做同样的事情,但为了准确性和可靠性,我建议使用$\u会话。
session_start();
@$_SESSION['pagecount']++;