.net 新闻点击量修改,避免恶意刷新

DataTable dt = bll.GetNewsByID(id);//根据ID获取的新闻详细内容
                if (dt != null && dt.Rows.Count > 0)
                {
                    //点击量修改的方案
                    string title = dt.Rows[0]["title"].ToString();
                    //判断是否存在 cookie
                    HttpCookie cookie = context.Request.Cookies["NewsTitle"];
                    if (cookie == null)
                    {
                        //新建一个cookie
                        cookie = new HttpCookie("NewsTitle");
                        cookie.Value = title;
                        cookie.Expires.AddHours(1);
                        context.Response.Cookies.Add(cookie);
                        bll.UpdClicks(id);
                        //修改读取到的数据里面的点击量 +1
                        dt.Rows[0]["clickNum"] = Convert.ToInt32(dt.Rows[0]["clickNum"]) + 1;
                    }
                    else
                    {
                        //判断cookie 的值是否是当前新闻的标题,如果不是,则没有访问过,点击量加1
                        if (cookie.Value != title)
                        {
                            bll.UpdClicks(id);
                            //修改读取到的数据里面的点击量 +1
                            dt.Rows[0]["clickNum"] = Convert.ToInt32(dt.Rows[0]["clickNum"]) + 1;
                            cookie.Value = title;
                            context.Response.Cookies.Add(cookie);
                        }
                    }
                    res.State = APIState.OK;
                    res.Data = dt;
                }

  我这里主要使用cookie的方式来实现这样一个新闻点击后计数加1,这样的方式其实是有一定的BUG的,应为这里记下的是用户最近一次访问的新闻标题,那么如果用户在几个新闻之间切换的话,那么还是不能避免恶意计数的!

时间: 2024-10-06 14:24:10

.net 新闻点击量修改,避免恶意刷新的相关文章

18.Yii2.0框架模型修改记录 和 修改点击量

目录 修改数据 修改点击量 修改数据 上面要 use app\models\Article; //修改 //http://yii.com/?r=home/Edit public function actionEdit() { $article = Article::findOne(9); $article->article_title = '刘亦菲穿旗袍带仙气,赵丽颖穿旗袍优雅,她穿旗袍最有民国范'; $article->num = 8; //$data = $article->upda

redis实现点击量/浏览量

java+redis实现高性能新闻点击量更新 1.redis简单介绍.它用来做高性能数据存取 是极好的. 2.实例:新闻点击量. 1)每次刷新,我们并不一定要往数据库里面立即更新数据 2)可以在redis里面做key-value存储 3)设置一个阀值,当用户刷新到一定数量时才更新到数据库中 3.本课时在windows下部署. 4.linux部署 后面也会讲到 课程地址 :http://edu.51cto.com/index.php?do=lesson&id=42104 -------------

如何修改帝国cms文章点击量默认值和成倍增加

我们在帝国cms发布完文章,在不点击的情况下,“点击量”默认显示为0,请问有什么方法,修改关注默认值吗?这个可以在增加信息时,“特殊属性”标签里修改点击量,如下图 有朋友问有没其他好的方法快速增加.成倍增加?打开e\public\ViewClick\index.php文件,找到 $usql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set onclick=onclick+1 where id='$id

C# 刷新页面浏览次数(点击量)+1

页面视图: <p class="text-center text-muted">文章来源:@ent.Origin 点击量:@ent.Hits <Script Language="Javascript" Src="/Web/UpdateClick/@ent.Id"></Script> 日期:@ent.CreateDate </p> 控制器代码: public ActionResult UpdateCl

mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量

继续回到沈老师的MYSQL颠覆实战,首先回顾下上一节课的内容,请大家会看下上节课写的存储过程. 打开prod_clicklog表, 我们只要把日期(不含时分秒)的部分存在数据库中, 如果同一日期有相同用户点击商品,那么我们对其数值+1,否则的话,这张点击日志表会过于庞大 下面我们将prod_clicklog表修改下: 将字段clickdate 修改为 date类型,增加clicknum字段,默认为1. 然后,我们把上一节课的存储过程sp_load_prod再修改一下: BEGIN SELECT

asp.net网站防恶意刷新的Cookies与Session解决方法

本文实例讲述了asp.net网站防恶意刷新的Cookies与Session解决方法,是WEB程序设计中非常实用的技巧.分享给大家供大家参考.具体实现方法如下: Session版实现方法: public double time; public const int freetime = 1;//防刷冰冻时间间隔,当前为1秒 #region 防恶意刷新 if (Session.SessionID == null) {   Response.End(); } else if (Session["sion

python通过代理刷网页点击量

python通过代理刷网页点击量 更新异常处理情况 @time 2013-0803 更新循环里计数问题和随机等待时间问题 #!/usr/bin/python #-*- coding:utf-8 -*- ''' 此脚本主要实现网页的点击量,除了实现次功能点外,还有三个知识点: 1.随机获取代理ip,通过代理ip访问指定站点,其目的是防止ip被封 2.访问一个页面后,随机休息几秒,再访问,其目的是防止网站前面有4-7层过滤设备拦截 3.修改http的user agent字段,有些网站和4-7层设备会

JavaWeb-Servlet技术的监听器-解析与实例-网站在线用户信息与网页点击量

转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 在Web项目中,我们对下面这几个监听器必须熟练的使用,它们的作用真的很大.熟练的使用后,可以使我们少绕弯路,少写很多代码. 事件源 监听对像的创建和销毁 监听对像上属性的添加和删除 HttpSession HttpSessionListener HttpSessionAttributeListener - HttpSessionEvent ServletRequest Servl

如何让dedecms文章点击量增加一定的数值

用dedecms建站都知道有一个文章点击量这个参数,我们可不可以用这个浏览量做些延伸扩展呢?比如加上一个固定值变成另外一个指标.很多朋友已经想到了,如下图,我们将本文浏览量286设为点击量,加上300000得到的结果为全站总浏览量300286,感觉有点邪恶.只是打比方,大家不要去作恶哈.那么如何让dedecms文章点击量增加一个固定值呢? ytkah找到了一个方法,对,就直接用下面的代码进行调用 {dede:field.click runphp="yes"}@[email protec