我想要在用户访问网站的X页面时发生某项操作
我是否必须在外部存储计数器(在txt文件或数据库中)?
我想不出将计数器设置为0的方法,然后在每次页面加载时增加它。计数器总是会重置为0,或者我错过了一些明显的东西?
答案 0 :(得分:14)
使用$_SESSION
数据来存储个人查看过的页数非常简单。
$_SESSION['pageviews'] = ($_SESSION['pageviews']) ? $_SESSION['pageviews'] + 1 : 1;
答案 1 :(得分:1)
最简单的方法是使用PHP的session storage。
session_start();
@$_SESSION['pagecount']++;
PHP会自动向用户发送会话cookie,并将$ _SESSION的内容透明地存储在与此cookie关联的平面文件中。你真的不需要为这个问题推出自己的解决方案。
答案 2 :(得分:0)
您可以在用户第一次访问您的页面时启动会话,然后在每次用户重新加载/访问子页面时增加该值。另一种方法是在每个页面上都有一个隐藏字段,并检索其值,增加它并将其发布到新页面。
<input type="hidden" value="2" id="blabla" />
答案 3 :(得分:0)
简短的回答是肯定的,你必须在外部保存它,因为php(默认情况下)具有零内存持久性策略。这基本上意味着一旦你的php脚本运行,内存中就没有任何东西了。
对于流量较低的站点,您可能需要考虑一个简单的txt文件,您可以在其中读取,增加和写入。对于更高流量的站点,可以使用非常简单的mysql表。
答案 4 :(得分:0)
您是否已经有办法确定用户是谁(如用户名和密码),即使他们离开网站又回来了一天?或者您只是想跟踪访问者看到的页面数量,并在第x页上查看特殊内容。
如果是第二个,你已经有了一个会话变量,可以存储计数器。
$_SESSION['views'] = $_SESSION['views'] + 1
if($_SESSION['views'] == x) ...
答案 5 :(得分:-2)
您将使用if语句检查它是否已设置;
if( isset($count) )
{
$count = $count + 1;
}
else
{
$count = 1;
}
您还可以使用get方法将计数放入URL中,这样就不必将计数写入文件或数据库。