php网站新添一个抽奖,要求后台可以控制谁中奖,怎么做
给你一个概率计算function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result; }上述代码是一段经典的概率算法,$proArr是一个预先设置的数组,假设数组为:array(100,200,300,400),开始是从1,1000这个概率范围内筛选第一个数是否在他的出现概率范围之内, 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间,在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。这样筛选到最终,总会有一个数满足要求。就相当于去一个箱子里摸东西,第一个不是,第二个不是,第三个还不是,那最后一个一定是。这个算法简单,而且效率非常高。配置下奖项$prize_arr = array( '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1), '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), '4' => array('id'=>5,'prize'=>'10Q币','v'=>22), '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50), );最后输出JSON给前端foreach ($prize_arr as $key => $val) { $arr[$val['id']] = $val['v']; } $rid = get_rand($arr); //根据概率获取奖项id $res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项 unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项 shuffle($prize_arr); //打乱数组顺序 for($i=0;$i<count($prize_arr);$i++){ $pr[] = $prize_arr[$i]['prize']; } $res['no'] = $pr; echo json_encode($res);
php+MySQL实现抽奖代码问题
首先关于PHP+MYSQL来实现不可以重复抽奖这个很好实现,因为你抽奖的页面要么是动态要么是AJAX来实现的。首先AJAX的先不说,我先说关于动态页面实现。
那么就是加载页面的时候判断对方今日有没有抽过,如果抽过了那么就用if语句来不执行抽奖代码。其实里面还有很多的细节问题,你说让贴出代码,我不愿意抄别人的东西,同时网上给的代码好用的很少。
你要是想做一个有个性的功能还是要自己写的或者修改,不知道你对JS了解多少也没法说。我说的就是大概的思路。
样式千万种,你找到一个你觉得方便而且能达到你目的的同时针对自己的知识的吧。其实不论那种方式都是要用到AJAX的用来确认已经抽过。
php怎么实现大转盘抽奖,求源码,前台后台
身为一个php程序员写出这么复杂的js,让前台人员情何以堪...
你要给他几个值,中奖率(这个客户自己调节),奖品图(价格)的显示,中奖人滚动(要把信息给他),这是最基本的,还有抽奖次数.
我这个是给他个json,他自己用ajax自己取,js前台自己写去.后台这个功能的管理咱们写差不多
这个比较难的就是防止刷转盘...比如一个二货来不断注册换号来增大自己中奖几率,简单办法通过ip,可是用vpn肿么办?那就要用$_ENV等相关数据了.(别误把有抽奖次数的顾客 排除出去);
如果为了学习可以了解前台,如果是做后台的就专心做后台,术业有专攻
我的功能具体如下:
可以设置每个等级 奖品 以及中奖率,最可以加10个等级(建议最多5个),还可以区分免费赠送次数的中奖率,和消费赠送的次数的中奖率.
可以设置 登陆送的抽奖次数,购买多少钱物品可以送1次抽奖机会,
可以设置 假中奖信息,中奖率为零也可以滚动中奖者名单...有点儿缺德(可以手动写信息,也可以随机生成信息)
可以更换 大转轮 和,砸蛋模式 以及对应模板(有点鸡肋)
作弊系统 可以自定义某些客户的中奖率,你懂得
防客户作弊 ,有恶搞模式,同1个ip使用赠送抽奖次数超过5次的时候,自动设置抽奖几率为0,之后在其第20次刷的时候提醒您在第5次作弊的时候已经被屏蔽.
可以设置邀请好友送抽奖次数,在抽奖次数为0时自动提醒,邀请成功后 可以同时发送短信,邮件,站内通知提醒
我这个是针对特殊需求商城写的 我把给出的json参数 给他做个详细说明,自己写去 就不关我事了