抽奖程序

今天在外面买裤子,看见超市里面搞抽奖。好多人在那里啊,回寝室第一时间就做了这个抽奖的程序。呵呵,纪念下下

简单了点,这个是注册界面

简单的注册下,留下点个人信息

数据库的表设计如下

 

其实可以做到后台添加奖牌的,但嫌麻烦就没搞了。这些都是验证提示窗口

最后的就是现实获奖人显示的界面了

简简单单。无聊的时编程也是个消遣

如下是代码

  1. <?php
  2.     $DB_HOST    = "localhost";    //数据库主机位置
  3.     $DB_LOGIN   = "root";     //数据库的使用账号
  4.     $DB_PASSWORD    = "123";      //数据库的使用密码
  5.     $DB_NAME    = "elliot";         //数据库名称
  6.     $conn = mysql_connect($DB_HOST$DB_LOGIN$DB_PASSWORD);
  7.     mysql_select_db($DB_NAME);  
  8.     mysql_query("SET NAMES 'gb2312'");
  9. ?>

这是经典的PHP链接MYSQL代码。

这个是登录界面的代码,简单的很

  1. <script>
  2.         <!------ 检查 form1 字段值的函数 BEGIN ------>
  3.     function check()
  4.     {
  5.         if(document.form1.m_name.value == "")
  6.         {
  7.             alert("未输入姓名");
  8.             return false;
  9.         }
  10.         if(document.form1.m_sid.value == "")
  11.         {
  12.             alert("未输入身份证号码");
  13.             return false;
  14.         }
  15.         if(document.form1.m_email.value == "")
  16.         {
  17.             alert("未输入 E-mail");
  18.             return false;
  19.         }
  20.         if(document.form1.m_phone.value == "")
  21.         {
  22.             alert("未输入联系电话");
  23.             return false;
  24.         }
  25.         if(document.form1.m_addr.value == "")
  26.         {
  27.             alert("未输入奖品邮寄地址");
  28.             return false;
  29.         }
  30.         document.form1.submit();
  31.     }
  32.         <!------ 检查 form1 字段值的函数 END ------>
  33. </script>
  34. <form name="form1" method="post" action="logon_process.php">
  35.   <table width="750" border="1">
  36.     <tr> 
  37.       <td colspan="4" align="center">抽奖人信息填写</td>
  38.     </tr>
  39.     <tr> 
  40.       <td width="101">姓名</td>
  41.       <td width="287"> 
  42.         <input type="text" name="m_name">
  43.       </td>
  44.       <td width="131">身份证号码</td>
  45.       <td width="203"> 
  46.         <input type="text" name="m_sid">
  47.       </td>
  48.     </tr>
  49.     <tr> 
  50.       <td width="101">E-mail</td>
  51.       <td width="287"> 
  52.         <input type="text" name="m_email">
  53.       </td>
  54.       <td width="131">联系电话</td>
  55.       <td width="203"> 
  56.         <input type="text" name="m_phone">
  57.       </td>
  58.     </tr>
  59.     <tr> 
  60.       <td width="131">奖品邮寄地址</td>
  61.       <td colspan="3"> 
  62.         <input type="text" name="m_addr" size="40">
  63.       </td>
  64.     </tr>
  65.     <tr> 
  66.       <td colspan="4" align="center"> 
  67.           <input type="submit" name="Submit" value="清除重填">
  68.           <input type="button" name="Submit2" value="送出" onClick="check();">
  69.           <br>
  70.           <font size="3" color="#FF0000">
  71.             (请留下您的联系信息, 务必填写正确, 让我们能联系到您。) 
  72.           </font>
  73.       </td>
  74.     </tr>
  75.   </table>
  76. </form>

 

关键在这里登录处理程序

  1. <?
  2.     include("db_conn.php");
  3.     include("sidcheck.php"); // 导入身份证号码检查机制
  4.     // 查询数据库中是否有此用户 BEGIN
  5.     $SQLStr = "SELECT * FROM memberprize WHERE m_sid = '$m_sid'";
  6.     $res = db_query($SQLStr);
  7.     // 查询数据库中是否有此用户 END
  8.     
  9.     if (db_num_rows($res)>0) // 若有此用户
  10.     {
  11.         $message = "您已经登记过了..";
  12.     }
  13.     else // 若无此用户
  14.     {
  15.         // 将用户信息写进数据库中 BEGIN
  16.         $SQLStr = "INSERT INTO memberprize (m_id, m_name, m_sid, m_email, m_phone, m_addr, p_id) ";
  17.         $SQLStr .= "VALUES('', '$m_name', '$m_sid', '$m_email', '$m_phone', '$m_addr', '0')";
  18.         db_query($SQLStr);
  19.         echo $SQLStr;
  20.         $message = "谢谢您的登记, 请期待抽奖日的结果";
  21.         // 将用户信息写进数据库中 END
  22.     }
  23. ?>
  24. <script>
  25. alert("<?=$message?>");
  26. location.href="prizelist.php";
  27. </script>

这里面特别是身份证检查的程序很好玩,在网上看的,不错,以前都是A123456789这些。这个处理程序还不错,呵呵。

  1. <?
  2. class CIDMaker  //检查身份证号码
  3. {
  4.     var $id
  5.     var $err
  6.     var $idx = array(1,1,1,1,1,1,1,1,3,1,1,2,2,2,3,2,2,2,2,2,2,2,3,3,3,3); 
  7.     var $idy = array(0,1,2,3,4,5,6,7,4,8,9,0,1,2,5,3,4,5,6,7,8,9,0,1,2,3); 
  8.     function check($id_no
  9.     {
  10.         $id_no = ucfirst($id_no);               //首字母转大写
  11.         if(ereg("^[A-Z][0-9]{9}$"$id_no))
  12.         {
  13.             for($i = 0;$i < 10; $i++)
  14.                 $ch[$i] = substr($id_no,$i,1);
  15.             $i = 0; 
  16.                         for ($char = "A"$char != $ch[0]; $char++) 
  17.                 $i++;                   //字母转数字
  18.                         $id = $this->idx[$i]+$this->idy[$i]*9+$ch[1]*8+$ch[2]*7+$ch[3]*6+$ch[4]*5+$ch[5]*4+$ch[6]*3+$ch[7]*2+$ch[8]*1+$ch[9]*1; 
  19.                         $id = (($id % 10) == 0) ? TRUE : FALSE; 
  20.                         return $id
  21.                 } 
  22.         else
  23.             return 0;
  24.         } 
  25. }
  26.     $cidmaker = new CIDMaker;
  27.     $result = $cidmaker->check($m_sid);
  28.     if($result == FALSE)
  29.     {
  30.         echo "<script>";
  31.         echo "alert(/"请输入正确的身份证号码/");";
  32.         echo "</script>";
  33.         echo "<body onload = /"history.back();/">";
  34.         break;
  35.     }
  36. ?>

最最关键的是抽奖的程序了。

  1. <?
  2.     include("db_conn.php");
  3.     include("db_func.php");
  4.     // 计算共有几个用户登记 BEGIN
  5.     $SQLStr = "SELECT * FROM memberprize";
  6.     $res = db_query($SQLStr);
  7.     $count = db_num_rows($res);
  8.     // 计算共有几个用户登记 END
  9.     // 将使抽奖会员表中的 m_id (抽奖会员编号) 
  10.     // 依次置入数组中 BEGIN
  11.     for($i=0;$i<$count;$i++)
  12.     {
  13.         $row = db_fetch_array($res);
  14.         $array[] = $row[m_id];
  15.     }
  16.     // 将使抽奖会员表中的 m_id (抽奖会员编号) 
  17.     // 依次置入数组中 END
  18.     shuffle($array); // 随机排列数组中的值
  19.     
  20.     // 取出奖项共分几等级 BEGIN
  21.     $SQLStr = "SELECT * FROM prize";
  22.     $res = db_query($SQLStr);
  23.     $num = db_num_rows($res);
  24.     // 取出奖项共分几等级 END
  25.     $check = 0;
  26.     // 取出得奖名额的会员, 并依次指定奖项 BEGIN
  27.     for ($n=0;$n<$num;$n++)
  28.     {
  29.       $row = db_fetch_array($res);
  30.       for($j=0;$j<$row['p_num'];$j++)
  31.       {
  32.         if ($array[$j] != ''// 奖品发完就GAMEOVER
  33.         {
  34.           $SQLStr = "UPDATE memberprize SET p_id = '$row[p_id]' WHERE m_id = '$array[$check]'";
  35.           db_query($SQLStr);
  36.           $check++;
  37.         }
  38.       }
  39.     }
  40.     // 取出得奖名额的会员, 并依次指定奖项 END
  41. ?>
  42. <script>
  43. alert("抽奖完毕");
  44. location.href="prizelist.php";
  45. </script>

RAR文件貌似不能传~那算了

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值