PHP如何设置COOKIE只能一个人投票一次

PHP如何设置COOKIE只能一个人投票一次require_once("../model/common.inc.php");$ip=$_SERVER["REMOTE_AD... PHP如何设置COOKIE只能一个人投票一次
require_once("../model/common.inc.php");
$ip=$_SERVER["REMOTE_ADDR"];
$uid=$_GET['id'];
if($ip!=$cookie){
$sql="update hr120_hsssp set votes=votes+1 where hid=".$uid."";
if(mysql_query($sql))
{
echo "<script>alert('投票成功!');window.location.href='index.php';</script>";
}
else
{
echo "<script>alert('已经投票!');window.location.href='index.php';</script>"
}
?>
这个代码运行不鸟。。
展开
 我来答
圣鸾OJ
推荐于2018-04-19 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:112万
展开全部
个人经验
至少我认为目前为止还没有一种方法能完全避免网上重复投票的
如果记录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);
郭某人来此
2015-09-13 · TA获得超过1645个赞
知道答主
回答量:952
采纳率:100%
帮助的人:89.2万
展开全部
个人经验
至少我认为目前为止还没有一种方法能完全避免网上重复投票的
如果记录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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圈圈的爸爸
2012-05-09 · 超过23用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:65.9万
展开全部
set_cookie('cookie名称',内容,时间);
if(isset($_COOKIE['cookie名称'])){
echo "你已经投过票,请勿重复"
}else{
echo " 感觉您的投票";
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappa9wsynzvb357n
2012-05-08 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:59.4万
展开全部
$is=isset($_COOKIE['is']);
if($is)die('你已经透过了')
else setcookie('is','1',time()+864000);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式