php签到,ThinkPHP签到代码
ThinkPHP簽到代碼
發(fā)表于 2015-12-13 / 3299 次圍觀
//PHP簽到代碼 ,不用考濾幾月幾日,跨年跨月等情況。有問題可以提出
//控制器
public function sign(){
if($_GET['tag']=='in'){
$data=array(
'userId'=>$this->userId,
'sc_score'=>5,
'sc_detail'=>'簽到+5分',
'sc_type'=>1
);
}
$current=date('Y-m-d H:i:s',time());
$hasSign=M('sign')->where("userId={$this->userId}")->find();
$count=$hasSign['si_count'];
if($hasSign){
$lastSignDay=strtotime("{$hasSign['si_time']}");
$lastSign=date('Y-m-d',$lastSignDay);
$today=date('Y-m-d',time());
if($lastSign==$today){
echo "今天已簽到,您已連續(xù)簽到 {$count} 天,連續(xù)簽到7天+50分!";
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=M('sign')->where("userId={$this->userId}")->save(array('si_time'=>$current,'si_count'=>$count)); //簽到表
}else{
$sign=M('sign')->add(array('userId'=>$this->userId,'si_count'=>1)); //簽到表
}
if($sign){
M('score')->add($data); //積分表
if($count !=0 && !empty($count)){
if($count%7==0){
$data2=array(
'userId'=>$this->userId,
'sc_score'=>50,
'sc_detail'=>'連續(xù)簽到7天,增送50積分',
'sc_type'=>1
);
M('score')->add($data2); //積分表
}
}
if($count>0){
echo "簽到成功,您已連續(xù)簽到 {$count} 天,連續(xù)簽到7天+50分!";
}else{
echo "簽到成功";
}
}else{
echo '簽到失敗,請稍后重試!';
}
}
技術宅,科技怪,程序猿。
Comments : 0
有問題可在下面發(fā)表評論,當然沒事也可以在下面吹吹牛皮、扯扯淡!
昵稱 *
郵箱 *
網址
總結
以上是生活随笔為你收集整理的php签到,ThinkPHP签到代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏签到测试点
- 下一篇: (php毕业设计)基于php二手书交易管