用cookies实现防止重复投票
来源:互联网 发布:sql书籍推荐 编辑:程序博客网 时间:2024/06/05 05:59
基本思想:点击投票按钮后,如果投票用户是第一次投票,即在cookie中查找不到该投票用户的标识,则把投票用户标识记录到cookie中,同时设定cookie过期时间,这个时间可以限制用户多长时间内不能重复投票,然后把投票数加1;如果用户重复投票,由于在cookie中已存在该用户的标识,在cookie没过期的情况下则提示已投票。
缺点:可以用清除cookie的方法重复投票。
代码如下:
<html>
<head>
<title>防止重复投票</title>
<script language="javascript" type="text/javascript">
//cookies基本操作对象
var cookies={
read : function(n){//名字 读cookies
var dc = "; "+document.cookie+"; ";
var coo = dc.indexOf("; "+n+"=");
if (coo!=-1){
var s = dc.substring(coo+n.length+3,dc.length);
return unescape(s.substring(0, s.indexOf("; ")));
}else{
return "";
}
},
set : function(name,value,expires){//名字 值 过期时间 写cookies
var expDays = expires*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()+expDays);
var expString = expires ? "; expires="+expDate.toGMTString() : "";
var pathString = ";path=/";
document.cookie = name + "=" + escape(value) + expString + pathString;
},
del : function(name){//名字 删除cookies
value=""
expires="0"
var expDays = expires*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()+expDays);
var expString = expires ? "; expires="+expDate.toGMTString() : "";
var pathString = ";path=/";
document.cookie = name + "=" + escape(value) + expString + pathString;
}
};
var count=0;//记录投票数
function vote()
{
var name = document.getElementById("txtName").value;
if(cookies.read(name))
{
alert("你已经投过票了,明天继续吧.");
}
else
{
count++;
document.getElementById("txtCount").value = count;
cookies.set(name,"voted",1);//
}
}
</script>
</head>
<body>
<input type="text" id="txtName" value="xiaoming" />
<input type="button" value="投票" onclick="vote();" />
<div>投票数:
<input type="text" id="txtCount" value="0" readonly="readonly" />
</div>
</body>
</html>
<head>
<title>防止重复投票</title>
<script language="javascript" type="text/javascript">
//cookies基本操作对象
var cookies={
read : function(n){//名字 读cookies
var dc = "; "+document.cookie+"; ";
var coo = dc.indexOf("; "+n+"=");
if (coo!=-1){
var s = dc.substring(coo+n.length+3,dc.length);
return unescape(s.substring(0, s.indexOf("; ")));
}else{
return "";
}
},
set : function(name,value,expires){//名字 值 过期时间 写cookies
var expDays = expires*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()+expDays);
var expString = expires ? "; expires="+expDate.toGMTString() : "";
var pathString = ";path=/";
document.cookie = name + "=" + escape(value) + expString + pathString;
},
del : function(name){//名字 删除cookies
value=""
expires="0"
var expDays = expires*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()+expDays);
var expString = expires ? "; expires="+expDate.toGMTString() : "";
var pathString = ";path=/";
document.cookie = name + "=" + escape(value) + expString + pathString;
}
};
var count=0;//记录投票数
function vote()
{
var name = document.getElementById("txtName").value;
if(cookies.read(name))
{
alert("你已经投过票了,明天继续吧.");
}
else
{
count++;
document.getElementById("txtCount").value = count;
cookies.set(name,"voted",1);//
}
}
</script>
</head>
<body>
<input type="text" id="txtName" value="xiaoming" />
<input type="button" value="投票" onclick="vote();" />
<div>投票数:
<input type="text" id="txtCount" value="0" readonly="readonly" />
</div>
</body>
</html>
- 用cookies实现防止重复投票
- 防止网站重复投票
- 投票系统之防止重复投票
- 关于防止重复刷投票的个人观点
- cookie保存IP防止重复投票
- 中文COOKIES防止乱码
- 防止表单重复提交的实现方法!
- JS 实现防止重复提交按钮
- 防止按钮重复点击的js实现
- struts2实现防止表单重复提交
- 服务器端防止重复提交的一个实现
- 防止重复提交的前后台实现
- 使用Struts实现防止表单重复提交
- session实现防止用户重复提交表单
- #pragma data_seg 实现防止程序重复运行
- 自动投票系统【四】C# 清除Cookies
- C++ builder学习之用存储过程实现防止同一个人重复登陆!
- 用linux的curl实现自动投票
- {转载}非程序员的GNU Emacs使用心得
- pwm 控制 步进电机 小车
- 什么是MMU
- 管理者授权的四个技巧
- 串口问题
- 用cookies实现防止重复投票
- 通用USB设备驱动源码分析
- BlackBerry上不同的消息提醒方法
- MFC 微软基础类
- .net面试题(一)
- “月薪5万,微软中国研究院最新面试题”答案讨论
- sql注入相关
- BIM的前世今生
- 数据库连接方式