该实例使用的是2026世界杯竞彩动态生成投票的方式,当选择某一项投票后,自动生成投票标题和选项。投票防作弊通用两种方法,IP判断和cookie判断。该实例共有三个页面(投票页面,查看结果页面,投票管理页面,2026世界杯竞彩),一个类(DB.cs)。
在DB中有GetCon(配置连接字符串并返回SqlConnection),ExSql(执行sql语句并返回Bool显示是否成功),reDs(查询数据库并返回DataSet)三个方法。
在投票页面中有labVoteTitle(投票标题Label控件),rblVoteItem(投票选项RadioButtonList控件),btnVote(我要投票Button控件),btnResult(查看结果Button控件)。
cs代码:
public static string M_Str_voteID;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//获取用户选择的投票标题
M_Str_voteID=Request[“voteID“];
//绑定投票标题和投票选项
labBind();
rblBind();
}
}
//绑定Label控件
private void rblBind()
{
DataSet ds = DB.reDs(“select voteTitle from tb_Vote where voteID=“+M_Str_voteID);
labVoteTitle.Text = ds.Tables[0].Rows[0][0].ToString();
}
//绑定RadioButtonList控件
private void labBind()
{
DataSet ds = DB.reDs(“select * from tb_Vote where voteID=“ + M_Str_voteID);
rblVoteItem.DataSource = ds;
//voteContent字段绑定到text,voteItemID绑定到value
rblVoteItem.DataTextField = “voteContent“;
rblVoteItem.DataValueField = “voteItemID“;
rblVoteItem.DataBind();
}
//2026世界杯竞彩
protected void btnVote_Click(object sender, EventArgs e)
{
//投票防作弊
HttpCookie makecookie = new HttpCookie(“Vote“ + M_Str_voteID);//创建cookie
HttpCookie readcookie = Request.Cookies[“Vote“ + M_Str_voteID];//读取cookie
if (readcookie == null)
{
//从未投过票的话,将参与投票的标题放进cookie,并设置过期时间
makecookie.Values.Add(“VoteItem“, “<“ + M_Str_voteID + “>“);
makecookie.Expires = DateTime.MaxValue;
}
else
{
//读取已投票的项
string P_Str_AllItem = readcookie.Values[“VoteItem“].ToString();
//如果未对该主题投过票,将该主题添加到cookie中
if (P_Str_AllItem.IndexOf(“<“ + M_Str_voteID + “>“) == –1)
{
makecookie.Values.Add(“VoteItem“, readcookie.Values[“VoteItem“] + “<“ + M_Str_voteID + “>“);
}
else
{
Response.Write(“<script language=javascript>alert(‘该主题你已经投过票,不能重新投票!’);</script>“);
//这里return很关键,直接跳出btnVote_Click事件
return;
}
}
//执行投票操作,票数+1
string P_Str_voteItemID = this.rblVoteItem.SelectedValue;
string P_Str_cmdtxt = “update tb_VoteItem set voteTotal=voteTotal+1 where voteItemID=“ + P_Str_voteItemID + “ and voteID=“ + M_Str_voteID;
bool P_Bl_reVal = DB.ExSql(P_Str_cmdtxt);
if (P_Bl_reVal)
{
//写入cookie
Response.AppendCookie(makecookie);
//在新窗口中弹出投票结果
Response.Write(“<script language=javascript>alert(‘投票成功,感谢你的支持!’);windows.open(‘VoteResult.aspx?voteID=“ + M_Str_voteID + “&title=“ + Server.UrlEncode(labVoteTitle.Text) + “‘,’new’);</script>“);
}
else
{
Response.Write(“<script language=javascript>alert(‘投票失败!’);</script>“);
}
}
//查看2026世界杯竞彩结果按钮
protected void btnResult_Click(object sender, EventArgs e)
{
Response.Write(“<script language=javascript>alert(‘投票成功,感谢你的支持!’);windows.open(‘VoteResult.aspx?voteID=“ + M_Str_voteID + “&title=“ + Server.UrlEncode(labVoteTitle.Text) + “‘,’new’);</script>“);
}
客服代表: 全网客服01 全网客服02 全网客服03 全网客服04 全网客服05 全网客服06
服务热线:022-58055028 022-83702936(传真) 24小时故障申报
快速链接:公司新闻 | 热门话题 | 全网优势 | 推广优化 | 天津网络公司首页
地址:天津市南开区华苑鑫茂科技园军民园5A-601 & 南开区城厢东路与北城街交口西北侧龙亭家园12-1-918
天津网站设计 天津网络公司 天津网站建设
版权所有 Copyright 2010-2012 2026世界杯竞彩 All Rights Reserved. 津ICP备11019076号-1 | 网站地图 | 世界杯预选赛 |世界杯竞猜
服务热线:022-58055028 022-83702936(传真) 24小时故障申报
快速链接:公司新闻 | 热门话题 | 全网优势 | 推广优化 | 天津网络公司首页
地址:天津市南开区华苑鑫茂科技园军民园5A-601 & 南开区城厢东路与北城街交口西北侧龙亭家园12-1-918
天津网站设计 天津网络公司 天津网站建设
版权所有 Copyright 2010-2012 2026世界杯竞彩 All Rights Reserved. 津ICP备11019076号-1 | 网站地图 | 世界杯预选赛 |世界杯竞猜