我想统计某一页面的点击率,以session+1来做!就是每次page_load里面session+1;但这样做如果遇见有人恶意 F5刷新的话,数据会一直加.有什么办法判断用户是第一次加载呢?Page.IsPostBack不行,刷新的时候一直是 false;
或者 有什么好的方法来统计,在刷新的时候不会自动+1;
在线等,希望高手指点.PS: 查资料可以屏蔽F5,但不会禁止用户鼠标去点!

解决方案 »

  1.   

    你同时限制IP不就可以了,1个IP24小时内点一次有效
      

  2.   

    加个cookie,判断如果cookie存在就不计算
      

  3.   

    而且你这个不能用session 用 application还差不多,用session 一个客户端对应一个,没用的
    最好就是放数据库里,同时对应来访的IP,记录登陆时间,这样判断,定一个时间内刷新不加
      

  4.   

    先感谢上面的朋友们,限IP,有关键的代码吗?谢谢,cookie就不要了,这方法想过.
      

  5.   

    通过Request.UserHostAddress判断客户端IP
      

  6.   

    建个访问IP 表,如果24小时内没有相同的ip访问记录加1
      

  7.   

    原来限制QQ申请好象用的cookie,删出cookie照样申请。后来改成限制IP了,不过重启猫一样刷,现在不知道是不是一样,楼主要限制IP可以在数据库中记录IP地址和最后时间,动网限制IP就是记录在数据库里的,你可以先判断IP在数据库中是否有记录,没就appliction加1,有就计算时间差,超过1天一样处理,没超过application做处理。不知道有没更好的办法~关注ing
      

  8.   

    限IP,有关键的代码吗---------
    先取得客户端IP,记录到数据库中,然后在24小时之类的同一IP只能投一次票
    这样做的缺点是,有写是共用一个网关上网,那么他们所有人只能投一次票
    看楼主选择了
      

  9.   

    to leafsword_519(一度的温暖)那就要用cookie了
      

  10.   

    存进数据库不太好,我只是不想让人家刷,不是不想人家浏览.感觉存入viewstate不知道会怎么样?
    是否还有更好的解决方法呢?期待,我会一直关注,明天晚上揭贴,分都有
      

  11.   

    还有几种方法:1 取客户端网卡编码
    2 用全局变量
    3 cookie+session
      

  12.   

    建议不要用session,一旦你的访问量增大了,你就知道它带来的后果!建议用application!
      

  13.   

    用APPLICATION吧在GLOBAL.ASAX里弄也成。
      

  14.   

    我收藏很久的代码哟,兄弟与你共享了:自己写个Page类:namespace YcmRefresh
    {
    public class Page : System.Web.UI.Page
    {
    private bool _refreshState;
    private bool _isRefresh; public bool IsRefresh
    {
    get
    {
    return _isRefresh;
    }
    } protected override void LoadViewState(object savedState)
    {
    object[] allStates = (object[]) savedState;
    base.LoadViewState(allStates[0]);
    _refreshState = (bool) allStates[1];
    _isRefresh = _refreshState == (bool) Session["__ISREFRESH"];
    } protected override object SaveViewState()
    {
    Session["__ISREFRESH"] = _refreshState;
    object[] allStates = new object[2];
    allStates[0] = base.SaveViewState();
    allStates[1] = !_refreshState;
    return allStates;
    }
    }
    }通过页面的IsRefresh属性就可以判断是不是刷新了!
      

  15.   

    用session呀在Global.asax.cs  页的
    protected void Application_Start(Object sender, EventArgs e)
    {


    }
    里锁上这个用户就可以了
      

  16.   

    要考虑性能的话,session不好一个好的idear,建议用yuchangmao(学习孟子)
      

  17.   

    记录IP,把IP数据存储起来,然后用时间来限制相同IP访问次数.
      

  18.   

    yuchangmao(学习孟子) ( ) 信誉:96    Blog 
    -----------------------------------------------
    先谢谢,当我没点击页面的时候,刷新根本不变化,除非我点了页面上的控件以后才会发生变化