防止重复投票 不懂
public partial class Vote : System.Web.UI.Page{
public static string M_Str_voteID;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
M_Str_voteID = Request["voteID"];
labBind();//显示投票标题
rblBind();//显示投票选项
}
}
public void labBind()
{
DataSet ds = DB.reDs("select voteTitle from tb_Vote where voteID=" + M_Str_voteID);
labVoteTitle.Text = ds.Tables[0].Rows[0][0].ToString();
}
public void rblBind()
{
DataSet ds = DB.reDs("select * from tb_VoteItem where voteID=" + M_Str_voteID);
rblVoteItem.DataSource = ds;
rblVoteItem.DataTextField = "voteContent";
rblVoteItem.DataValueField = "voteItemID";
rblVoteItem.DataBind();
}
protected void btnVote_Click(object sender, EventArgs e)
{
HttpCookie madecookie = new HttpCookie("Vote" + M_Str_voteID);
HttpCookie readcookie = Request.Cookies["Vote" + M_Str_voteID];
if (readcookie == null)
{
madecookie.Values.Add("VoteItem", "<" + M_Str_voteID + ">");
madecookie.Expires = DateTime.MaxValue;
Vote跟VoteItem之间有联系么?
}
else
{
string p_str_allitem = readcookie.Values["VoteItem"].ToString();
if (p_str_allitem.IndexOf("<" + M_Str_voteID + ">") == -1)
IndexOf是否因找不到匹配项的索引,就会等于-1??
{
madecookie.Values.Add("VoteItem", readcookie.Values["VoteItem"] + "<" + M_Str_voteID + ">");这里添加时,为什么要用到readcookie.Values["VoteItem"],而不是直接用+ "<" + M_Str_voteID + ">"??
}
else
{
Response.Write("<script language=javascript>alert('该主题你已经成功投过票,不能重新投票!');</script>");
return;
}
}
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)
{
Response.AppendCookie(madecookie);这句是什么意思?
Response.Write("<script>alert('投票成功,感谢您的支持!');window.open('VoteResult.aspx?voteID=" + M_Str_voteID + "&title=" + Server.UrlEncode(labVoteTitle.Text) + "','new');</script>");
}
else
Response.Write("<script>alert('投票失败!');</script>");
}
protected void btnResult_Click(object sender, EventArgs e)
{
Response.Write("<script>window.open('VoteResult.aspx?voteID=" + M_Str_voteID + "&title=" + Server.UrlEncode(labVoteTitle.Text) + "','new');</script>");
}
} --------------------编程问答-------------------- 重复投票,不是通过IP地址和规定时间来做么。还要做验证码。。 --------------------编程问答-------------------- 你这个是通过cookie来记录并实现屏蔽的
Vote跟VoteItem之间有联系么?
这个vote是标示,voteItem是里面的键值对的键
详细的自己去搜索下cookie
--------------------编程问答-------------------- 另外cookie实现投票,若是我清楚cookie呢?? --------------------编程问答-------------------- 一般投票系统必须要保证投票的公正、公平性。系统在这方面对每个前台用户所投出的票,都有记录下他的IP 地址。
可以判断用户。已经投了的就不能重复再投票。 --------------------编程问答-------------------- 通过IP来限制吧
补充:.NET技术 , ASP.NET