得到本页最后浏览者的IP(viewer_ip),记录在数据库中.
当有下一个浏览者时,如果获得的IP与数据库中的相同,计数器(counter)不加,数据库中IP不变.
相反,如果获得的IP与数据库中的不同,计数器(counter)加1,数据库中IP替换为当前浏览者IP.
通过这种方法可以防止同一IP不同刷新!
当有下一个浏览者时,如果获得的IP与数据库中的相同,计数器(counter)不加,数据库中IP不变.
相反,如果获得的IP与数据库中的不同,计数器(counter)加1,数据库中IP替换为当前浏览者IP.
通过这种方法可以防止同一IP不同刷新!
里没有,就只让增长一次,但是实际上运行时却不管库中有否记录,计数器均
增长,我是个刚学PHP的菜niao,怎么也看不出哪的问题,请哪位麻烦指点一下?
<?php
$counterFile ="counter/counter.txt";//记录访问人数的文本文件;
$link=mysql_connect("localhost","root","xin*123");
mysql_select_db("tracker",$link);
$show="select user_ip from detail";
$ip=mysql_query($show,$link);
list($user_ip)=mysql_fetch_array($ip);
function displayCounter($counterFile)
{
$fp = fopen($counterFile,"rw");
$num = fgets($fp,69);
$num += 1;
$strnum=strval($num);//chang to string
$strnum=chop($strnum);//delete space
$numlen=strlen($strnum);
for($i=1;$i<=$numlen;$i++)
{
$numm[$i]=substr("$strnum",$i-1,1);
echo "<img src=counter/".$numm[$i].".jpg border=0>";//显示数字图片
}
exec( "rm -rf $counterFile");
exec( "echo $num > $counterFile");
if (!file_exists($counterFile))
{
exec( "echo 0 > $counterFile");
}
}
$var=0;
for($i=1;$i<=mysql_num_rows($ip);$i++)
{
if ($REMOTE_ADDR==$user_ip)
{
global $var;
$var++;
}
}
if($var>0)
{ $fp = fopen($counterFile,"r");
$num = fgets($fp,69);
$num += 1;
$strnum=strval($num);//chang to string
$strnum=chop($strnum);//delete space
$numlen=strlen($strnum);
for($i=1;$i<=$numlen;$i++)
{
$numm[$i]=substr("$strnum",$i-1,1);
echo "<img src=counter/".$numm[$i].".jpg border=0>";
}
}
else {
displayCounter($counterFile);
}
php?>
$counterFile ="counter/counter.txt";//记录访问人数的文本文件;
$link=mysql_connect("localhost","root","xin*123");
mysql_select_db("tracker",$link);
$show="select user_ip from detail";
$ip=mysql_query($show,$link);
list($user_ip)=mysql_fetch_array($ip);
function displayCounter($counterFile)
{
$fp = fopen($counterFile,"rw");
$num = fgets($fp,69);
$num += 1;
$strnum=strval($num);//chang to string
$strnum=chop($strnum);//delete space
$numlen=strlen($strnum);
for($i=1;$i<=$numlen;$i++)
{
$numm[$i]=substr("$strnum",$i-1,1);
echo "<img src=counter/".$numm[$i].".jpg border=0>";//显示数字图片
}
exec( "rm -rf $counterFile");
exec( "echo $num > $counterFile");
if (!file_exists($counterFile))
{
exec( "echo 0 > $counterFile");
}
}
$var=0;
for($i=1;$i<=mysql_num_rows($ip);$i++)
{
if ($REMOTE_ADDR==$user_ip)
{
global $var;
$var++;
}
}
if($var>0)
{ $fp = fopen($counterFile,"r");
$num = fgets($fp,69);
//$num += 1;
//将上一行删除,此行是根据$var>0,则库中已有此IP,则$num不应再计数
$strnum=strval($num);//chang to string
$strnum=chop($strnum);//delete space
$numlen=strlen($strnum);
for($i=1;$i<=$numlen;$i++)
{
$numm[$i]=substr("$strnum",$i-1,1);
echo "<img src=counter/".$numm[$i].".jpg border=0>";
}
}
else {
displayCounter($counterFile);
}
php?>
for($i=1;$i<=mysql_num_rows($ip);$i++)
{
if ($REMOTE_ADDR==$user_ip)
{
global $var;
$var++;
**********************
此处
if ($REMOTE_ADDR==$user_ip)
改为 if ($REMOTE_ADDR==$user_ip[$i])