当前位置: 欧洲杯竞猜 > 服务器运维 > 正文

最棒的抽取奖品系统,教你做抽取奖金活动时怎

时间:2019-12-08 12:55来源:服务器运维
抽奖游戏#box{ width:720px; margin:0 auto; margin-top:20px; box-shadow:0px 0px 2px #333;}.pic{ width:200px; height:200px; float:left; line-height:200px; margin:10px; border:5px #fff solid; color:blue; font-size: 35px; text-align: center;
抽奖游戏#box{ width:720px; margin:0 auto; margin-top:20px; box-shadow:0px 0px 2px #333;}.pic{ width:200px; height:200px; float:left; line-height:200px; margin:10px; border:5px #fff solid; color:blue; font-size: 35px; text-align: center;}.anniu{ width:200px; height:200px; float:left; margin:10px;}#drawBtn{ color:red; font-size:30px; width:200px; height:200px; box-shadow:0px 0px 2px #333; font-weight: bold;}   window.onload=init; var setting={ count:0, total:24, delay:20, picIndex:[0,1,2,4,7,6,5,3] } function init(){ document.getElementById.onclick=function(){ setting.count=0; setting.delay=20; this.disable=true;//禁用按钮 var drawBtn=this; //获取所有图片的div var allDivs=document.getElementsByClassName; //获得一个随机整数,代表中奖的那个位置,3*8  setting.total =Math.floor*allDivs.length); //设置定时器,依次修改每个div边框的颜色. setTimeout{ //重置上一个边框的颜色 for (var i=0;i<allDivs.length;i  ){ allDivs[i].style.borderColor="#fff"; allDivs[i].style.opacity=0.7; } //找到要修改的那个边框的颜色设置 var currentPic=allDivs[setting.picIndex[setting.count%8]]; currentPic.style.borderColor="red"; currentPic.style.opacity=1.0; setting.count  ; setting.delay =2*setting.count; if(setting.count>setting.total){ alert; drawBtn.disable=false; return; } setTimeout; },setting.delay); } }  1 2 3 4  5 6 7 8

在利用上,针对不一样等级次序的移动进展分歧强度的防刷,使用哪类也不及,最终最棒对奖品的发放频率也张开下限定,能更加好的防刷。

从上述图片能够看出那一个抽取奖金程序分成几有个别,标题(某某公司年初总计大会现场抽取奖品活动),开奖区(抽取奖品时滚动的名字和手提式有线电电话机号码),再不怕接纳抽出是几等奖(分别有一等奖、二等奖和三等奖选项),开始开关运行抽取奖金,奖项的设定能够从后台进行布署,动态进展加载。

本文实例疏解了javascript跑马灯抽取奖品特效,极其契合用于抽取奖品活动,分享给我们供我们参谋,具体内容如下

顾客需求接收网址帐号进行登陆后才得以抽取奖金,准则上对帐号抽取奖品次数实行限制,提升了抽取奖品门槛,适用于有帐号系统的抽取奖金页面,不过这种只怕会接受大批量大号来刷奖,所以固然能针对中号做一些简便管理分辨,未达到标准绳不能够到位抽取奖金,则能到达越来越好的职能防刷效果。

数码管理分界面效果图:
欧洲杯竞猜 1

以上就是本文的详细内容,希望对大家的学习抱有利于。

4.iP限制

抽取奖品甘休后将结果保存在数据Curry,那样就完事了叁遍抽取奖金进程。是或不是特别轻便,O(∩_∩)O哈哈~

上述是私房所精通防刷方式,假若哪儿有题目还请斧正,有其余措施也迎接批评留言,协同学习!

以此首借使对抽取奖品软件的标题,抽取奖品分界面包车型大巴主副标题标设置,还恐怕有正是奖项的安装和奖金的安装,那样就能够倾心抽取奖品程序的灵敏设置不再那么鸠拙。

7.Wechat登陆

着力设置功效图:

欧洲杯竞猜 2

 

这种根本针对抽取奖品次数上无需节制,为了大幅度宣传,进步暴露度,奖品价值又不高的移位,抽取奖金奖品为一些抵扣券,虚构货品等,倘若扩展抽取奖品限定,反而会压实门槛,流失个别客户。

  1 try
  2             {
  3                 string strSQL = "select stuID from AwardsInfo";
  4                 DataTable DT_temp = DA.GetDataTable(strSQL);
  5                 if (DT_temp.Rows.Count >= stuCount)
  6                 {
  7                     timLD.Stop();
  8                     lblID1.Text = "所有人都已经获奖了!";
  9                     return;
 10                 }
 11                 //--
 12                 while (!Awa_Chk())
 13                 {
 14                     int randata;
 15                     RanNum = new Random((int)DateTime.Now.Ticks);
 16                     randata = RanNum.Next(stuCount);
 17                     lblClass.Text = DT_stu.Rows[randata]["stuID"].ToString();
 18                     lblName.Text = DT_stu.Rows[randata]["stuName"].ToString();
 19                     phone.Text = DT_stu.Rows[randata]["phone"].ToString();
 20                     string xx = phone.Text;
 21                     string xx1 = xx.Replace(xx.Substring(3, 4), "****");
 22                     this.lblID1.Text = this.lblName.Text;
 23                     this.lblID2.Text = xx1;
 24                 }
 25                 //--
 26                 this.btnBegin.Visible = true;
 27                 this.btnOpen.Visible = false;
 28                 //--
 29                 timLD.Stop();
 30                 //--停止音乐
 31                 new PublicClass().MusicPlayer(1);
 32                 //--启动线程
 33                 timer2.Start();
 34                 //--开始新的音乐
 35                 new PublicClass().MusicPlayer2(0);
 36                 //--
 37                 btnOpen.Enabled = false;
 38                 if (rdb1.Checked == true)
 39                 {
 40                     Awa_Save(lblClass.Text.Trim(), lblName.Text.Trim(), lblGrade.Text.Trim(), phone.Text.Trim());
 41                     this.labMess1.Text = lblName.Text.Trim();
 42                     string xx = phone.Text;
 43                     string xx1 = xx.Replace(xx.Substring(3, 4), "****");
 44                     this.labMess2.Text = xx1;
 45                     this.labMess3.Text = lblGrade.Text.Trim();
 46                 }
 47                 else if (rdb2.Checked == true)
 48                 {
 49                     Awa_Save(lblClass.Text.Trim(), lblName.Text.Trim(), lblGrade.Text.Trim(), phone.Text.Trim());
 50                     this.labMess1.Text = lblName.Text.Trim();
 51                     string xx = phone.Text;
 52                     string xx1 = xx.Replace(xx.Substring(3, 4), "****");
 53                     this.labMess2.Text = xx1;
 54                     this.labMess3.Text = lblGrade.Text.Trim();
 55                 }
 56                 else if (rdb3.Checked == true)
 57                 {
 58                     Awa_Save(lblClass.Text.Trim(), lblName.Text.Trim(), lblGrade.Text.Trim(), phone.Text.Trim());
 59                     this.labMess1.Text = lblName.Text.Trim();
 60                     string xx = phone.Text;
 61                     string xx1 = xx.Replace(xx.Substring(3, 4), "****");
 62                     this.labMess2.Text = xx1;
 63                     this.labMess3.Text = lblGrade.Text.Trim();
 64                 }
 65                 this.pInfo.Visible = true;
 66                 timer1.Start();
 67                 //--
 68                 string xstr1 = "select count(stuID) from AwardsInfo Where awaGrade='三等奖'";
 69                 DataTable xtable1 = DA.GetDataTable(xstr1);
 70                 //--
 71                 string xstr2 = "select count(stuID) from AwardsInfo Where awaGrade='二等奖'";
 72                 DataTable xtable2 = DA.GetDataTable(xstr2);
 73                 //--
 74                 string xstr3 = "select count(stuID) from AwardsInfo Where awaGrade='一等奖'";
 75                 DataTable xtable3 = DA.GetDataTable(xstr3);
 76                 //--
 77                 if ((xtable1.Rows[0][0].ToString() != "3") && (xtable2.Rows[0][0].ToString() == "0") && (xtable3.Rows[0][0].ToString() == "0"))
 78                 {
 79                     this.rdb3.Checked = true;
 80                     //--
 81                     this.rdb1.Enabled = false;
 82                     this.rdb2.Enabled = false;
 83                     this.rdb3.Enabled = true;
 84                 }
 85                 //--
 86                 if ((xtable2.Rows[0][0].ToString() != "2") && (xtable1.Rows[0][0].ToString() == "3") && (xtable3.Rows[0][0].ToString() == "0"))
 87                 {
 88                     this.rdb2.Checked = true;
 89                     //--
 90                     this.rdb1.Enabled = false;
 91                     this.rdb2.Enabled = true;
 92                     this.rdb3.Enabled = false;
 93                 }
 94                 //--
 95                 if ((xtable3.Rows[0][0].ToString() != "1") && (xtable1.Rows[0][0].ToString() == "3") && (xtable2.Rows[0][0].ToString() == "2"))
 96                 {
 97                     this.rdb1.Checked = true;
 98                     //--
 99                     this.rdb1.Enabled = true;
100                     this.rdb2.Enabled = false;
101                     this.rdb3.Enabled = false;
102                 }
103                 //--
104                 btnBegin.Focus();
105             }
106             catch
107             { }

2.日增图形验证码

欧洲杯竞猜 3

1.无需防刷

更新一下数据库而已,O(∩_∩)O哈哈~

平时做运行移动页面包车型客车都掌握,活动离不开各个抽取奖品,为了保险普通顾客的收益不直面震慑,就供给对抽取奖品做好防刷节制,防止奖品都被刷子拿走,上边小编讲一下莫衷一是等级次序抽取奖金活动分化强度的防刷方法。

这几个代码首假使获得保存在数据库(Access)中的数据,监测已经开出的奖项,运转抽取奖金的计时事件,这一个计时事件运行抽取奖金程序,抽取奖品并会播放音乐,抽取奖品甘休音乐也自动终止。抽取奖金的逻辑也正是随机数。

顾客抽取奖金前需输出手提式有线电话机号,实行短信验证后工夫抽取奖品,对手机号抽取奖金次数做约束,这种情势对客户身份进行了求证,经常顾客都唯有二个手提式有线话机号,是比较严酷的防刷,有分明的秘诀,适用于奖品价值较高,数量很少的抽取奖品活动。

欧洲杯竞猜 4

对单个ip抽取奖金次数,抽取奖品频率等打开界定,这里需思谋的极其情况是多个客户使用wifi时ip雷同的标题,借使是股票总值比较低,数量比较多的奖品,则足以微微松开抽取奖品次数,比方种种ip只好抽取奖品玖17次,每回抽取奖金需间隔3s,浏览器同临时间缓存抽取奖金记录,抽过的客户不可能继续抽,ip若到达抽取奖金次数则无从持续抽取奖金;但只要奖品价值较高,数量少之又少,则独有忽视三人同不平日候使用wifi的情景,直接约束ip的抽取奖品次数,这种能相比较严峻地约束刷奖的动静。

抽取奖金时的功力图:

次第设定一定次数的抽取奖金,浏览器对抽取奖金次数进行缓存,到达限定次数则无从持续抽取奖品,这种能够限定普通顾客的抽取奖金次数,但稍懂Computer的就足以通过免去浏览器缓存来举办额外交部次官数抽奖,并无法严酷地防刷奖。

如上为运维和终止音乐的播放和安歇。

客商采用微信帐号授权登陆技巧扩充抽取奖品,约束Wechat帐号的抽取奖金次数,这种能很好的防刷,但是只好做在Wechat里,而且需做在服务号上工夫收获顾客新闻,所以门槛较高,宣传范围不广,切合用于本人企业公众号上的各样抽奖活动。

点击最前后相继,按键立时成为了收尾,甘休逻辑如下:

3.浏览器cookie限制

欧洲杯竞猜 5

6.短信验证码

 1  #region * 计时事件
 2         /// <summary>
 3         /// <remarks>计时器事件</remarks>
 4         /// </summary>
 5         private void timLD_Tick(object sender, EventArgs e)
 6         {
 7             int randata;
 8             RanNum = new Random((int)DateTime.Now.Ticks);
 9             randata = RanNum.Next(stuCount);
10             this.lblClass.Text = DT_stu.Rows[randata]["stuID"].ToString();
11             lblName.Text = DT_stu.Rows[randata]["stuName"].ToString();
12             phone.Text = DT_stu.Rows[randata]["phone"].ToString();
13             string xx = phone.Text;
14             string xx1 = xx.Replace(xx.Substring(3, 4), "****");
15             this.lblID1.Text = this.lblName.Text;
16             this.lblID2.Text = xx1;
17         }
18         #endregion

5.网址帐号登入

       又到一年的年初了,很有商家(公司)都在计划年底运动了,有些厂家(公司)福利比较好的话或许年底移动就相比好(抽取奖金、红包、小车等等应有尽有),有个别厂商(公司)没赚到钱恐怕请职员和工人吃顿饭都早已正确了。集团(集团)为了在年底晚会上活跃氛围,一定要搞些活动,那么活动自投罗网少不了抽取奖品,企业(集团)为了反映公平正义的标准,必然会推荐软件实行抽取奖金。(不过对于程序猿来讲用抽取奖金软件只是相对来说,舞弊是遥遥绝对的事情),所以说这些社会或者过多专业表面是公正的,不过实际又不是那么公平公正了,潜准绳相对多,哎...多看淡这么些专业就好了,毕竟每一天欢悦最重要。

日增图形验证码技能进行抽取奖品的目标是严防脚本活动批量进行抽取奖品,杜绝了机器抽取奖品的状态,这种实行了简易的防刷节制,也只适用于奖品价值十分的低,能够大大方方发给的抽取奖金活动,对抽取奖金次数没有范围。

 1 string strSQL = "select stuName as 姓名,phone as 手机号码,awaGrade as 奖项 from AwardsInfo";
 2             DataTable DT = DA.GetDataTable(strSQL);
 3             if (DT.Rows.Count != 6)
 4             {
 5                 MessageBox.Show("奖项未抽完!");
 6                 return;
 7             }
 8             //--启动音乐
 9             new PublicClass().MusicPlayer1(0);
10             //--
11             string xstr = "";
12             int x1 = 0;
13             int x2 = 0;
14             foreach (DataRow xDataRow in DT.Rows)
15             {
16                 xstr = xDataRow["手机号码"].ToString().Replace(xDataRow["手机号码"].ToString().Substring(3, 4), "****");
17                 //--一等奖
18                 if (xDataRow["奖项"].ToString().Trim() == "一等奖")
19                 {
20                     this.label4.Text = xDataRow["姓名"].ToString().Trim()   "  "   xstr;
21                     continue;
22                 }
23                 //--二等奖
24                 if ((xDataRow["奖项"].ToString().Trim() == "二等奖") && (x1 == 0))
25                 {
26                     this.label5.Text = xDataRow["姓名"].ToString().Trim()   "  "   xstr;
27                     x1  ;
28                     continue;
29                 }
30                 if ((xDataRow["奖项"].ToString().Trim() == "二等奖") && (x1 == 1))
31                 {
32                     this.label6.Text = xDataRow["姓名"].ToString().Trim()   "  "   xstr;
33                     x1  ;
34                     continue;
35                 }
36                 //--三等奖
37                 if ((xDataRow["奖项"].ToString().Trim() == "三等奖") && (x2 == 0))
38                 {
39                     this.label7.Text = xDataRow["姓名"].ToString().Trim()   "  "   xstr;
40                     x2  ;
41                     continue;
42                 }
43                 if ((xDataRow["奖项"].ToString().Trim() == "三等奖") && (x2 == 1))
44                 {
45                     this.label8.Text = xDataRow["姓名"].ToString().Trim()   "  "   xstr;
46                     x2  ;
47                     continue;
48                 }
49                 if ((xDataRow["奖项"].ToString().Trim() == "三等奖") && (x2 == 2))
50                 {
51                     this.label9.Text = xDataRow["姓名"].ToString().Trim()   "  "   xstr;
52                     x2  ;
53                     continue;
54                 }
55             }

其意气风发分界面首若是查询出中奖人士名字和手提式有线电电话机号码,完成逻辑如下:

再者开动音乐的播报,那样就相比较兴奋了,能很好带动集团年会的效率。

改正的贯彻逻辑:

       自己使用了业余时间对抽取奖金软件实行了切磋,现在写出来供我们一同商讨。抽取奖金程序分成抽取奖金主分界面、基本设置(重新起头、基本设置、数据管理、关于和抽离)、中奖结果等等多少个部分。

上边再介绍一下抽取奖金结果呈现分界面了,首先拜会分界面达成效果与利益图。

  • 上边再介绍一下关于抽取奖品软件的一些安装:

       以上简介了抽取奖金软件,相对于追求简单的抽取奖金程序应该是可以应付了,假诺要再繁琐的话还足以再进一层进行实行,那个程序只怕只好起到三个投石问路的成效,如需搜求抽取奖品软件可步入大家的群(186841119)一齐上学讨论,让抽取奖金程序转得更遛。O(∩_∩)O哈哈~

欧洲杯竞猜 6

 

 

程序运维主界面如下:

以上分界面及可实现对抽取奖金职员开展保险了,是或不是很便利,O(∩_∩)O~。

点击带头贯彻逻辑:

抽取奖金进程效果图和是否抽取奖金结果图是或不是很炫,呵呵,那么些都是图片完成的。

  • 上面再介绍一下数额管理分界面,这些也是每八个抽取奖品程序必须有所的,一个抽取奖品程序离不开的或然抽取奖品的人手,所以这几个就须要开展有限支撑,能够对抽取奖金人士的新增添、改善和删除操作,同一时候还提供数据的导入。
 1             StringBuilder sbSQL = new StringBuilder("update SystemInfo set sys_TopLeft='");
 2             sbSQL.Append(txtTopLeft.Text   "',sys_Title='"   txtTitle.Text   "',sys_Title2='"   txtTitle2.Text);
 3             sbSQL.Append("',sys_Grade1='"   txtG1.Text   "',sys_Grade2='"   txtG2.Text   "',sys_Grade3='"   txtG3.Text);
 4             sbSQL.Append("',sys_Amount1='"   txtV1.Text   "',sys_Amount2='"   txtV2.Text   "',sys_Amount3='"   txtV3.Text   "'");
 5             if (DA.ExecuteSQL(sbSQL.ToString()))
 6             {
 7                 MessageBox.Show("修改系统基本设置成功!");
 8             }
 9             else
10             {
11                 MessageBox.Show("修改系统基本设置失败!");
12             }
 1 public void MusicPlayer(int state)
 2         {
 3             //加载音乐
 4             SoundPlayer Player = new SoundPlayer();
 5             Player.SoundLocation = AppDomain.CurrentDomain.BaseDirectory   "music\Sound3.wav";
 6             if (state == 0)
 7             {
 8                 Player.PlayLooping();
 9             }
10             else if (state == 1)
11             {
12                 Player.Stop();
13             }
14         }
15 
16         public void MusicPlayer1(int state)
17         {
18             //加载音乐
19             SoundPlayer Player = new SoundPlayer();
20             Player.SoundLocation = AppDomain.CurrentDomain.BaseDirectory   "music\Sound4.wav";
21             if (state == 0)
22             {
23                 Player.PlayLooping();
24             }
25             else if (state == 1)
26             {
27                 Player.Stop();
28             }
29         }
30 
31         public void MusicPlayer2(int state)
32         {
33             //加载音乐
34             SoundPlayer Player = new SoundPlayer();
35             Player.SoundLocation = AppDomain.CurrentDomain.BaseDirectory   "music\end.wav";
36             if (state == 0)
37             {
38                 Player.PlayLooping();
39             }
40             else if (state == 1)
41             {
42                 Player.Stop();
43             }
44         }
45 
46         public void MusicPlayer3(int state)
47         {
48             //加载音乐
49             SoundPlayer Player = new SoundPlayer();
50             Player.SoundLocation = AppDomain.CurrentDomain.BaseDirectory   "music\start.wav";
51             if (state == 0)
52             {
53                 Player.PlayLooping();
54             }
55             else if (state == 1)
56             {
57                 Player.Stop();
58             }
59         }

奖抽出后的功效图:

欧洲杯竞猜 7

 1 try
 2             {
 3                 //检查人员的数据有变化
 4                 if (DataAccess.DataIsChange)
 5                 {
 6                     Set_StuCount();
 7                 }
 8                 if (stuCount <= 0)
 9                 {
10                     MessageBox.Show("对不起,还没有人员信息,不能进行抽奖!", "没有记录", MessageBoxButtons.OK, MessageBoxIcon.Warning);
11                     return;
12                 }
13 
14                 //--检测一等奖是否抽完
15                 string xSql1 = "select sys_Grade1 from SystemInfo";
16                 string xSql2 = "select count(stuID) from AwardsInfo Where awaGrade='一等奖'";
17                 DataTable dt1 = DA.GetDataTable(xSql1);
18                 DataTable dt2 = DA.GetDataTable(xSql2);
19                 if (rdb1.Checked == true)
20                 {
21                     if (dt1.Rows[0]["sys_Grade1"].ToString().Trim() == dt2.Rows[0][0].ToString().Trim())
22                     {
23                         MessageBox.Show("一等奖已经抽取完毕,请抽取其它奖项!!!");
24                         return;
25                     }
26                 }
27 
28                 //--检测二等奖是否抽完
29                 string xSql3 = "select sys_Grade2 from SystemInfo";
30                 string xSql4 = "select count(stuID) from AwardsInfo Where awaGrade='二等奖'";
31                 DataTable dt3 = DA.GetDataTable(xSql3);
32                 DataTable dt4 = DA.GetDataTable(xSql4);
33                 if (rdb2.Checked == true)
34                 {
35                     if (dt3.Rows[0]["sys_Grade2"].ToString().Trim() == dt4.Rows[0][0].ToString().Trim())
36                     {
37                         MessageBox.Show("二等奖已经抽取完毕,请抽取其它奖项!!!");
38                         return;
39                     }
40                 }
41 
42                 //--检测三等奖是否抽完
43                 string xSql5 = "select sys_Grade3 from SystemInfo";
44                 string xSql6 = "select count(stuID) from AwardsInfo Where awaGrade='三等奖'";
45                 DataTable dt5 = DA.GetDataTable(xSql5);
46                 DataTable dt6 = DA.GetDataTable(xSql6);
47                 if (rdb3.Checked == true)
48                 {
49                     if (dt5.Rows[0]["sys_Grade3"].ToString().Trim() == dt6.Rows[0][0].ToString().Trim())
50                     {
51                         MessageBox.Show("三等奖已经抽取完毕,请抽取其它奖项!!!");
52                         return;
53                     }
54                 }
55                 //--
56                 //lblID1.ForeColor = Color.White;
57                 lblID.Visible = false;
58                 //--
59                 this.btnBegin.Visible = false;
60                 this.btnOpen.Visible = true;
61                 //--
62                 timLD.Start();//--抽奖程序启动
63                 //--
64                 new PublicClass().MusicPlayer3(1);
65                 //--启动音乐
66                 new PublicClass().MusicPlayer(0);
67                 btnOpen.Enabled = true;
68                 btnOpen.Focus();
69             }
70             catch
71             { }

编辑:服务器运维 本文来源:最棒的抽取奖品系统,教你做抽取奖金活动时怎

关键词: 欧洲杯竞猜