6 回答
![?](http://img1.sycdn.imooc.com/545865470001bf9402200220-100-100.jpg)
TA贡献2016条经验 获得超9个赞
至少我认为目前为止还没有一种方法能完全避免网上重复投票的
如果记录ip,一般ADSL断网再连ip就变了
设置cookie,浏览器都有禁用或者清除cookie的功能
设置session,关闭浏览器就没了
所以,我们只能尽量防止重复投票现象
方法介绍几种
session_start();
//获取ip地址
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
if(($_COOKIE['VoteIP']==$cip) or ($_SESSION['VoteIP']==$cip)){
//拒绝投票
}
//记录到cookie中
SetCookie("VoteIP", $cip, time()+3600*24);//3600秒=1小时 过期时间为24小时
//记录到session中
$_SESSION['VoteIP']=$cip;
//设置session存活时间
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
![?](http://img1.sycdn.imooc.com/533e4ce900010ae802000200-100-100.jpg)
TA贡献1818条经验 获得超11个赞
set_cookie('cookie名称',内容,时间);
if(isset($_COOKIE['cookie名称'])){
echo "你已经投过票,请勿重复"
}else{
echo " 感觉您的投票";
}
![?](http://img1.sycdn.imooc.com/54584d9f0001043b02200220-100-100.jpg)
TA贡献1111条经验 获得超0个赞
$is=isset($_COOKIE['is']);
if($is)die('你已经透过了')
else setcookie('is','1',time()+864000);
![?](http://img1.sycdn.imooc.com/545866130001bfcb02200220-100-100.jpg)
TA贡献1847条经验 获得超11个赞
方法一:根据用户IP
缺点:有可能是不同的用户使用同一台电脑,这样就限制了同一天内其它用户的投票次数。
方法二:根据用户ID
缺点:网站数据库必须有用户IP资料,用户必须注册才能投票。多数想投票的用户会觉得麻烦而放弃投票。另外,同一个用户完全可以注册不用的帐户多次投票。
方法三:根据用户端的cookie
缺点用“方法一”
![?](http://img1.sycdn.imooc.com/545862aa0001f8da02200220-100-100.jpg)
TA贡献1880条经验 获得超4个赞
至少我认为目前为止还没有一种方法能完全避免网上重复投票的
如果记录ip,一般ADSL断网再连ip就变了
设置cookie,浏览器都有禁用或者清除cookie的功能
设置session,关闭浏览器就没了
所以,我们只能尽量防止重复投票现象
方法介绍几种
session_start();
//获取ip地址
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
if(($_COOKIE['VoteIP']==$cip) or ($_SESSION['VoteIP']==$cip)){
//拒绝投票
}
//记录到cookie中
SetCookie("VoteIP", $cip, time()+3600*24);//3600秒=1小时 过期时间为24小时
//记录到session中
$_SESSION['VoteIP']=$cip;
//设置session存活时间
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
- 6 回答
- 0 关注
- 369 浏览
添加回答
举报