Home > Article > Backend Development > 这段签到代码有问题吗
<code><?php public function sign(){ //每日签到 $this->check_login(); $m_time=$this->getMillisecond(); $con['si_time']=array('gt',date('Y-m-d')); $ranking=M('sign')->where($con)->count(); if($ranking){ $haha=intval($ranking); switch ($haha){ case 1: $pm=5;//给5块 $row=2; $ch="亚军"; break; case 2: $pm=3;//给两块 $row=2; $ch="季军"; break; default: $pm=0; } }else{ $pm=10;//给10块赠金券 $row=1; $ch="冠军"; } if($pm>0){ $this->insertGiveCoupon($this->memberID,$pm); $memo="<br>您是今天的签到{$ch},成功领取{$pm}赠金券"; } $dao=M('sign');//实例化sign对象 $current=date('Y-m-d H:i:s',time()); $hasSign=$dao->where("userId={$this->memberID}")->find(); $count=$hasSign['si_count']; //查找会员名 $member=M('Members'); $where['id']=$this->memberID; $memberName=$member->where($where)->field('name')->find(); //$this->membername=$memberName['name']; $this->uid=$this->memberID; //如果执行成功 if($hasSign){ $lastSignDay=strtotime("{$hasSign['si_time']}"); $lastSign=date('Y-m-d',$lastSignDay); $today=date('Y-m-d',time()); if($lastSign==$today){ //echo "今天已签到,您已连续签到 <font color="green"> {$count} </font> 天,连续签到5天每天+5元代金券!"; $this->ajaxReturn('', "今天已签到!", 0);exit(); } $residueHour=24+24-date('H',$lastSignDay); //有效的签到时间 (签到当天剩余的小时+1天的时间) $formatHour=strtotime(date('Y-m-d H',$lastSignDay).':00:00');//签到当天 2014-12-07 18:00:00 $lastSignDate=strtotime("+{$residueHour}hour",$formatHour);//在2014-12-07 18:00:00 基础上+ 有效的签到时间 if(time()>$lastSignDate){ //当前时间 > 上一次签到时间 $count=1; }else{ $count=$count+1; } $sign=$dao->where("userId={$this->memberID}")->save(array('si_time'=>$current,'si_count'=>$count,'m_second'=>$m_time)); //签到表 }else{ $sign=$dao->add(array('userId'=>$this->memberID,'si_count'=>1,'si_time'=>$current,'m_second'=>$m_time)); //签到表 $count=1; } if($sign){ //第一天签到+1 第二天签到+2 第三天签到+3 第四天签到+4 第五天+5 连续5天每天+5 switch ($count){ case 1: $sc_score=1; break; case 2: $sc_score=2; break; case 3: $sc_score=3; break; case 4: $sc_score=4; break; default: $sc_score=5; } $dao->where("userId={$this->memberID}")->setInc('coin',$sc_score); //签到金额累加 $coin=$dao->where("userId={$this->memberID}")->field('coin')->find(); if($coin['coin']>=20){ $dao->where("userId={$this->memberID}")->setDec('coin',20);//如果满20将生成一张20的代金券 $this->insertCoupon('会员签到代金券',20,$this->memberID); } $data=array( 'userId'=>$this->memberID, 'sc_score'=>$sc_score, 'sc_detail'=>'签到+'.$sc_score, 'sc_type'=>1 ); M('score')->add($data); //积分表 if($count>0){ $this->ajaxReturn('', "签到成功!您已签到,成功领取{$sc_score}元代金券!{$memo}", 1);exit(); }else{ $this->ajaxReturn('', "您已签到!", 1);exit(); } }else{ $this->ajaxReturn('', "签到失败,请稍后重试!", 0);exit(); } } //私有方法,生成代金券 private function insertCoupon($name,$amount,$mid){ $data['name']=trim($name); $data['amount']=$amount; $data['coupon'] = array(); $data['coupon']=md5(uniqid(md5(microtime(true)),true)); $data['start_time']=time(); $data['expire_time']=strtotime("+2 year"); $data['dateline']=time(); $data['status']=1; $data['user_id']=$mid; M('coupon')->add($data); } //私有方法,生成赠金券 private function insertGiveCoupon($mid,$amount){ $map['user_id']=$mid; $map['status']=1; $res=M('givecoupon')->where($map)->find(); if($res){ M('givecoupon')->where($map)->setInc('amount',$amount); }else{ $data['name']='赠金券'; $data['amount']=$amount; $data['coupon'] = array(); $data['coupon']=md5(uniqid(md5(microtime(true)),true)); $data['start_time']=time(); $data['expire_time']=strtotime("next year"); $data['dateline']=time(); $data['status']=1; $data['user_id']=$mid; M('givecoupon')->add($data); } }</code>
<code><?php public function sign(){ //每日签到 $this->check_login(); $m_time=$this->getMillisecond(); $con['si_time']=array('gt',date('Y-m-d')); $ranking=M('sign')->where($con)->count(); if($ranking){ $haha=intval($ranking); switch ($haha){ case 1: $pm=5;//给5块 $row=2; $ch="亚军"; break; case 2: $pm=3;//给两块 $row=2; $ch="季军"; break; default: $pm=0; } }else{ $pm=10;//给10块赠金券 $row=1; $ch="冠军"; } if($pm>0){ $this->insertGiveCoupon($this->memberID,$pm); $memo="<br>您是今天的签到{$ch},成功领取{$pm}赠金券"; } $dao=M('sign');//实例化sign对象 $current=date('Y-m-d H:i:s',time()); $hasSign=$dao->where("userId={$this->memberID}")->find(); $count=$hasSign['si_count']; //查找会员名 $member=M('Members'); $where['id']=$this->memberID; $memberName=$member->where($where)->field('name')->find(); //$this->membername=$memberName['name']; $this->uid=$this->memberID; //如果执行成功 if($hasSign){ $lastSignDay=strtotime("{$hasSign['si_time']}"); $lastSign=date('Y-m-d',$lastSignDay); $today=date('Y-m-d',time()); if($lastSign==$today){ //echo "今天已签到,您已连续签到 <font color="green"> {$count} </font> 天,连续签到5天每天+5元代金券!"; $this->ajaxReturn('', "今天已签到!", 0);exit(); } $residueHour=24+24-date('H',$lastSignDay); //有效的签到时间 (签到当天剩余的小时+1天的时间) $formatHour=strtotime(date('Y-m-d H',$lastSignDay).':00:00');//签到当天 2014-12-07 18:00:00 $lastSignDate=strtotime("+{$residueHour}hour",$formatHour);//在2014-12-07 18:00:00 基础上+ 有效的签到时间 if(time()>$lastSignDate){ //当前时间 > 上一次签到时间 $count=1; }else{ $count=$count+1; } $sign=$dao->where("userId={$this->memberID}")->save(array('si_time'=>$current,'si_count'=>$count,'m_second'=>$m_time)); //签到表 }else{ $sign=$dao->add(array('userId'=>$this->memberID,'si_count'=>1,'si_time'=>$current,'m_second'=>$m_time)); //签到表 $count=1; } if($sign){ //第一天签到+1 第二天签到+2 第三天签到+3 第四天签到+4 第五天+5 连续5天每天+5 switch ($count){ case 1: $sc_score=1; break; case 2: $sc_score=2; break; case 3: $sc_score=3; break; case 4: $sc_score=4; break; default: $sc_score=5; } $dao->where("userId={$this->memberID}")->setInc('coin',$sc_score); //签到金额累加 $coin=$dao->where("userId={$this->memberID}")->field('coin')->find(); if($coin['coin']>=20){ $dao->where("userId={$this->memberID}")->setDec('coin',20);//如果满20将生成一张20的代金券 $this->insertCoupon('会员签到代金券',20,$this->memberID); } $data=array( 'userId'=>$this->memberID, 'sc_score'=>$sc_score, 'sc_detail'=>'签到+'.$sc_score, 'sc_type'=>1 ); M('score')->add($data); //积分表 if($count>0){ $this->ajaxReturn('', "签到成功!您已签到,成功领取{$sc_score}元代金券!{$memo}", 1);exit(); }else{ $this->ajaxReturn('', "您已签到!", 1);exit(); } }else{ $this->ajaxReturn('', "签到失败,请稍后重试!", 0);exit(); } } //私有方法,生成代金券 private function insertCoupon($name,$amount,$mid){ $data['name']=trim($name); $data['amount']=$amount; $data['coupon'] = array(); $data['coupon']=md5(uniqid(md5(microtime(true)),true)); $data['start_time']=time(); $data['expire_time']=strtotime("+2 year"); $data['dateline']=time(); $data['status']=1; $data['user_id']=$mid; M('coupon')->add($data); } //私有方法,生成赠金券 private function insertGiveCoupon($mid,$amount){ $map['user_id']=$mid; $map['status']=1; $res=M('givecoupon')->where($map)->find(); if($res){ M('givecoupon')->where($map)->setInc('amount',$amount); }else{ $data['name']='赠金券'; $data['amount']=$amount; $data['coupon'] = array(); $data['coupon']=md5(uniqid(md5(microtime(true)),true)); $data['start_time']=time(); $data['expire_time']=strtotime("next year"); $data['dateline']=time(); $data['status']=1; $data['user_id']=$mid; M('givecoupon')->add($data); } }</code>
楼主代码都没有贴全!
而且就算贴全了,你这变量名称
估计大家也懒得看!