在制作网站文章点击率的统计的时候,遇到一个问题,源码如下:
内容页 A.aspx:       protected void Page_Load(object sender, EventArgs e)
        {
          readChick();  //更新点击率操作
        }        protected void readClick()
        {
          int n_id =  Convert.ToInt32(request["id"]);   //获取由页面传过来的文章ID
          SqlConnection con = new SqlConnection(constring);
          con.Open();
          string cmd = "update NoteBook set n_read=n_read+1 where n_id=@id";  //在数据库中加1
          SqlCommand cmd = new SqlCommand(cmd,con);
          cmd.Parameters.Add("@id",SqlDbType.Int);
          cmd.Parameters["@id"].Value = n_id;
          cmd.ExecuteNonQuery();
          con.Close();
        }这样写基本上实现了点击率的功能,但有一个问题,就是如果同一个用户不停的反复的点击某一篇文章,那么点数据库中点击率的统计就会不停的增加,大家有没有办法杜绝这样现象???谢谢

解决方案 »

  1.   

    Page_Load里的readChick();应该是readClick();
    写错了~不好意思
      

  2.   

    方法有很多,判断ip,cookie,session...等等,不过点击率确实什么什么用处,
      

  3.   

    一般不考虑同一个人点击..
    即使想csdn也是,同一个人点击两次,他也算两次
      

  4.   


    说白了还是限制这个IP、cookies、session的某个时间段的点击次数
    每次用户打开这个文章前先判读是不是有记录有的话不算点击次数,没有的话用户打开这个文章后系统记录下这个ip和点击时间(或者写入客户端的cookies,或者写入服务器端的session)。
      

  5.   

    获取IP,点击 先判断IP 是否存在
      然后 每天定个时间 刷新IP 库
      

  6.   

    session 保存点击的文章的ID,
    判断Session是不是有