页面刷新问题,或者页面流量统计问题!UP有分

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

PS: 查资料可以屏蔽F5,但不会禁止用户鼠标去点!

39 个解决方案

#1


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

#2


帮 up

#3


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

#4


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

#5


1、 IP+时间
2、cookie

#6


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

#7


通过Request.UserHostAddress判断客户端IP

#8


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

#9


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

#10


限IP,有关键的代码吗

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

#11


to leafsword_519(一度的温暖)

那就要用cookie了

#12


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

#13


还有几种方法:

1 取客户端网卡编码
2 用全局变量
3 cookie+session

#14


该回复被版主删除

#15


广告绝对没分!

#16


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

#17


用cookie比较合适些

#18


学习....

#19


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

#20


我收藏很久的代码哟,兄弟与你共享了:

自己写个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属性就可以判断是不是刷新了!

#21


用session呀

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


}
里锁上这个用户

就可以了

#22


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

#23


屏蔽F5??你干脆屏蔽键盘鼠标算了

#24


路过,帮顶............

#25


还是得到IP的好,这样不但可以防刷新!还可防止客户短时间内重复记数!

#26


帮顶

#27


顶你个肺

#28


还是限制IP吧,用Application

#29


mark

#30


帮顶

#31


up

#32


up

#33


我也很想了解一下。

#34


IP+时间

#35


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

#36


up

#37


UP + jf

#38


up

#39


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

#1


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

#2


帮 up

#3


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

#4


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

#5


1、 IP+时间
2、cookie

#6


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

#7


通过Request.UserHostAddress判断客户端IP

#8


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

#9


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

#10


限IP,有关键的代码吗

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

#11


to leafsword_519(一度的温暖)

那就要用cookie了

#12


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

#13


还有几种方法:

1 取客户端网卡编码
2 用全局变量
3 cookie+session

#14


该回复被版主删除

#15


广告绝对没分!

#16


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

#17


用cookie比较合适些

#18


学习....

#19


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

#20


我收藏很久的代码哟,兄弟与你共享了:

自己写个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属性就可以判断是不是刷新了!

#21


用session呀

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


}
里锁上这个用户

就可以了

#22


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

#23


屏蔽F5??你干脆屏蔽键盘鼠标算了

#24


路过,帮顶............

#25


还是得到IP的好,这样不但可以防刷新!还可防止客户短时间内重复记数!

#26


帮顶

#27


顶你个肺

#28


还是限制IP吧,用Application

#29


mark

#30


帮顶

#31


up

#32


up

#33


我也很想了解一下。

#34


IP+时间

#35


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

#36


up

#37


UP + jf

#38


up

#39


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