如记数器的变量为:havecount
<?
if($havecount)
{
if(!session_is_register("havecount"))
{session_register("havecount");
$sql=mysql_query("update count set count=count+1");}
}
.
?>

解决方案 »

  1.   

    但是在这里的havecount没有赋值呀?
    就是不知道赋什么值合适呀!
      

  2.   

    用cookie, 这个不是很适合用session
      

  3.   

    使用cookie比较合适一些
    设置cookie的时候给它同时设置一个失效期限,比如说1天.每次页面刷新的时候判断是否有cookie,如果有,就不增加;
    否则的话,就设置cookie同时加一这也算是个防君子不防小人的个办法吧--
    老大,我联不上网啊,上网很困难。
      

  4.   

    <? 
    require("dbconn.php");
    if (!isset($currenttime))
    {
    //$time=time();
    //echo $time;
    $limit=time()+1;
    setcookie("currenttime","counter",$limit);
    $sql="update counter set qd_counter=qd_counter+1 where qd_id=1";
    $query=mysql_query($sql,$db);
    $sql1="select * from counter";
    $query1=mysql_query($sql1,$db);
    $row=mysql_fetch_array($query1);
    echo $row["qd_counter"];
    }
    else
    {
    //$sql="update counter set qd_counter=qd_counter where qd_id=1";
    //$query=mysql_query($sql,$db);
    $sql1="select * from counter";
    $query1=mysql_query($sql1,$db);
    $row=mysql_fetch_array($query1);
    echo $row["qd_counter"];
    }
    ?>
    代码是这样的,但是我过了1秒刷新的时候不增加!
      

  5.   

    当然不增加了, 这不是很明显的吗...if (!isset($currenttime))你第一次设了个cookie, 第二次进来的时候这个值已经有了, 以后你怎么刷新都没有用.程序流程本身就有问题了, 呵呵.用数据库记录, 就是一项非常大的开销, 而且根本没有必要哦.你只要用当前时间和记录在cookie中的时间进行比较不就行了? ^^
      

  6.   

    刚才上面的帖子的理解有点失误, 原来是想靠cookie自动失效啊.不过, 我个人认为等cookie失效不是一个好办法, 因为这样做依赖于一个不稳定的因素. Cookie和Session的失效时间好像一直都没有办法精确的.所以最好的办法是自己判断, 问题会少很多, 也不麻烦, 安全可靠.
      

  7.   

    每次访问时:如果没设cookie : 设cookie, 记录下当前时间如果设了cookie : 将当前时间与cookie值作差
                     (1) 小于规定时限的, 啥也不干
                     (2) 大于规定时限的, 将当前时间写入cookie, 同时计数器加1.很清晰的程序思路了.
      

  8.   

    <? 
    require("dbconn.php");
    if(!isset($VisitTimes))
    {
    $currenttime=mktime();
    setcookie("VisitTimes",$currenttime);
    }
    else
    {
    $lasttime=mktime();
    $a=$lasttime - $VisitTimes;
    //echo $a;
    if($lasttime - $$VisitTimes > 3600)
    {
    setcookie("VisitTimes",$lasttime);
    $sql="update counter set qd_counter=qd_counter+1 where qd_id='1'";
    $query=mysql_query($sql,$db);
    }
    }?>后续问题,为什么这样写,一刷新就增长呢?