php 浏览量 防刷,初学者:如何用PHP 代码防止刷 点击量?

初学者:如何用PHP 代码防止刷 点击量?

关注:225  答案:6  mip版

解决时间 2021-01-25 18:13

e6cb1a03ad541b3098697807b7bf1798.png

提问者耍硪ミ倪配么

2021-01-25 03:25

我的页面 每点击一次, 数据库中 的点击量 就会加一,

如果同一用户不断的刷新 ,那么 点击量就不断升

如何用php代码 防止刷点击量 ,求 代码

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家闪光的男人

2021-01-25 04:41

可以用session,你可以在用户第一次访问这个页面的时候在session中放置一个标识变量,用以标识这个操作是否执行过了,

session_start ();

if(isset($SESSION["flag"]))

{

执行更新点击量的操作代码

$SESSION["flag"]=1

}

访问过一次这个页面后,以后在访问这个页面或刷新页面就不会执行操作了,当然,浏览器关闭后session会失效,以后重新打开浏览器访问这个页面还是会执行一次更新点击量的操作,如果只能在一台电脑上执行一次操作,还是记录操作的电脑的IP地址,以后判断IP地址是否已经被记录过来决定是否执行操作

whq_0614,用户同样可以清楚cookie,方法就没有十全十美的,你要考虑这个就必然要舍弃那个

login.jsp:

String username = "";

//从客户端读取硬盘中的cookie文件

Cookie[] cookies = request.getCookies();

if(cookies == null){

username = "";

}

else{

for (int i = 0; i < cookies.length; i++){

if ("USERNAME".equalsIgnoreCase(cookies[i].getName())){

username = cookies[i].getValue();

}

}

%>

用户名

密 码

LoginAction:

//将正确userName放入c1对象,并用"USERNAME"做key标识

Cookie c1= new Cookie("USERNAME",logindto.getUsername());

//如果不设置时间,则cookie为会话cookie,不写入客户端硬盘

c1.setMaxAge(60*60*24);

response.addCookie(c1);

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼长街听风

2021-01-25 08:28

加一个刷新时间 比如每5秒才可以刷新

再加一个同一个IP刷新不算点击量

e6cb1a03ad541b3098697807b7bf1798.png

2楼雨落轻尘

2021-01-25 07:33

可以用session,你可以在用户第一次访问这个页面的时候在session中放置一个标识变量,用以标识这个操作是否执行过了, session_start (); if(isset($session["flag"])) { 执行更新点击量的操作代码 $session["flag"]=1 } 访问过一次这个页面后,以后在访问这个页面或刷新页面就不会执行操作了,当然,浏览器关闭后session会失效,以后重新打开浏览器访问这个页面还是会执行一次更新点击量的操作,如果只能在一台电脑上执行一次操作,还是记录操作的电脑的ip地址,以后判断ip地址是否已经被记录过来决定是否执行操作 whq_0614,用户同样可以清楚cookie,方法就没有十全十美的,你要考虑这个就必然要舍弃那个 login.jsp:

用户名

密 码

e6cb1a03ad541b3098697807b7bf1798.png

3楼可爱暴击

2021-01-25 07:06

2楼的方法不行,关了浏览器再打开还可以刷。

用COOKIE,当他点击的时候会创建一个COOKIE,有效时间是24小时,然后写判断如果那个COOKIE存在的话,不加点击率。这样等一天过去之后,他才可以点加一。

e6cb1a03ad541b3098697807b7bf1798.png

4楼你的偏见

2021-01-25 06:02

还有就是用cookie,和session运行机制差不多,不过这种方法有一个缺点,当用户清除cookie和session后照样可以添加,还有一种方法就是你在数据库里建一个表,用来保存用户的ip,用户每次点一下时,先判断ip是否已存在,如果存在则不加1,否则加1。

e6cb1a03ad541b3098697807b7bf1798.png

5楼白胡子大佬

2021-01-25 05:56

可以用session,你可以在用户第一次访问这个页面的时候在session中放置一个标识变量,用以标识这个操作是否执行过了,

session_start ();

if(isset($SESSION["flag"]))

{

执行更新点击量的操作代码

$SESSION["flag"]=1

}

访问过一次这个页面后,以后在访问这个页面或刷新页面就不会执行操作了,当然,浏览器关闭后session会失效,以后重新打开浏览器访问这个页面还是会执行一次更新点击量的操作,如果只能在一台电脑上执行一次操作,还是记录操作的电脑的IP地址,以后判断IP地址是否已经被记录过来决定是否执行操作

whq_0614,用户同样可以清楚cookie,方法就没有十全十美的,你要考虑这个就必然要舍弃那个

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值