<?php
$counterFile="counter.txt";function displayCounter($counterFile) {if (!file_exists($counterFile)) {
$num=1;
}
else
{
$fp=fopen($counterFile, "r");
$num = fgets($fp,5);
$num += 1;
fclose($fp);
}
print "<div id=\"footer\">您是第 "."$num"." 位无聊的人</div>";$fp=fopen($counterFile, "w");
fputs($fp, "$num");
fclose($fp);
}displayCounter($counterFile);?>这是一段php访客计数的代码。可是,这样写有个问题,就是每刷新一次页面,都会计数一次。请问,应该如何修改,使访客在退出浏览器之前不重复计数?
$counterFile="counter.txt";function displayCounter($counterFile) {if (!file_exists($counterFile)) {
$num=1;
}
else
{
$fp=fopen($counterFile, "r");
$num = fgets($fp,5);
$num += 1;
fclose($fp);
}
print "<div id=\"footer\">您是第 "."$num"." 位无聊的人</div>";$fp=fopen($counterFile, "w");
fputs($fp, "$num");
fclose($fp);
}displayCounter($counterFile);?>这是一段php访客计数的代码。可是,这样写有个问题,就是每刷新一次页面,都会计数一次。请问,应该如何修改,使访客在退出浏览器之前不重复计数?
解决方案 »
- 新手,任何程序都不懂,学PHP要多久?
- 一个彩票系统,前台要提交很多数据上来,我怎么组合提交到后台才好呢?
- 从浏览器访问wamp虚拟目录下的文件,显示的却是localhost页面
- 关于mysql添加数据
- 如何处理 '\n'
- php统计中英文字数
- php 拉取远程文件的问题
- 紧急求助,SQL语句的表达,。。。高手请入
- 请教:为什么进入.php页面弹出下载对话框?谢谢!
- 小弟因要急做一php的购物demo,那位老兄手中有源代码或思路,mail一份给俺。先谢过了![email protected]
- web application stress测试的问题,在线等
- [讨论]php 无法接收 ajax提交的 json 值
if (!isset($_SESSION['变量名'])){ //如果没有$_SESSION值,那么加1
$num += 1;
}
一台电脑每天无论访问多少次都算一次?
还是一台电脑进入一次网站就算一次?
如果是后者,楼上方法可行
如果是前者,恐怕要结合IP地址的判断了,已经访问过的IP计入一个文件中,刷新时先判断IP是否已经存在。但是这样也有一个问题,就是如果用户使用的是代理IP,那么无论多少用户使用该IP他们访问你的站点每天最多只能有一次。
还有一种方法就是使用客户端的MAC地址,但是这要使用JS才行,受限于用户浏览器安全级别。
楼上,我是希望这样:
同一台电脑在关闭浏览器后,重新登录算一次。可是关闭浏览器之前刷新页面不要计数。
<?php
$counterFile="counter.txt"; function displayCounter($counterFile) { if (isset($_COOKIE["访问已记录"])) {
return;
}
//函数setcookie("cookie名","cookie记录内容", "有效时间"),默认有效时间不关闭浏览器之间有效
setcookie("访问已记录", "");//time()+3600*12
if (!file_exists($counterFile)) {
$num=1;
}
else {
$fp=fopen($counterFile, "r");
$num = fgets($fp,5);
$num += 1; fclose($fp);
}
print "<div id=\"footer\">您是第 ".$num." 位无聊的人 </div>"; $fp=fopen($counterFile, "w");
fputs($fp, "$num");
fclose($fp);
} displayCounter($counterFile);
您给的代码我试了试,很可惜,没有什么变化。
唔……这是用楼主代码改的,楼主看看符合要求不
<?php
session_start();
if (!isset($_SESSION['guest'])){
$_SESSION['guest']='online';
}else{
$_SESSION['guest']='end';
}
$counterFile="counter.txt";function displayCounter($counterFile) {if (!file_exists($counterFile)) {
$num=1;
}
else
{
$fp=fopen($counterFile, "r");
$num = fgets($fp,5);
if ($_SESSION['guest']=='online'){
$num += 1;
$_SESSION['guest']='end';
}fclose($fp);
}
print " <div id=\"footer\">您是第"."$num"."用户</div>";$fp=fopen($counterFile, "w");
fputs($fp, "$num");
fclose($fp);
}displayCounter($counterFile);
?>
不支持使用cookie。
觉得session不错
考虑过脚本没