Think PHP 5 实现用户签到

1.后台:
//获取Session中的用户ID
$where['userid'] = session('user.id') ;
$result = Sigins::getOne($where);
if(!$result){
    $data['userid'] = session('user.id') ;
    $data['sign'] = 1;  //初始连续签到天数
    $data['num'] = 10;  //初始签到积分
    $data['addtime'] = time();
    $model=new Sigins();
    $res = $model->insert($data);
    if($res){
        $this->success('恭喜您完成首次签到获得10积分!!');
    }
}else{
    $sigin_time = $result['addtime'];     //获取上次签到的时间
    $atNow = date('y-m-d');   //当天0点
    $newNow = strtotime($atNow);     //转化为时间戳
    $prevDay = $newNow - 86400;          //昨天0点
    $nextDay =  $newNow + 86400;         //明天0点
    if($sigin_time>$newNow && $sigin_time<$nextDay){
        $this->error('您今天已经签到过了!!当天不能重复签到');
    }
    if($sigin_time>$prevDay && $sigin_time<$newNow){
        $id['userid'] = $result['userid'] ;// $request->session()->get('U')['user_id'];
        $data['sign'] = $result['sign']+1;
        $data['num'] = $result['num']+10*($result['sign']+1);
        $data['addtime'] = time();
        $model=new Sigins();
        $res=$model->where($id)->update($data);
        if($res){
            $this->success('第'.($result['sign']+1).'天签到获得'.(10*($result['sign']+1)).'积分');
        }
    }
    if($sigin_time<$prevDay){
        $id['userid'] = $result['userid'] ;//$request->session()->get('U')['user_id'];
        $data['sign'] = 1;  //初始连续签到天数
        $data['num'] = $result['num']+10;  //初始签到积分
        $data['addtime'] = time();
        $model=new Sigins();
        $res=$model->where($id)->update($data);
        if($res){
            $this->success('由于你中途断签,此次签到获得10积分');
//                    echo "<Script>alert('签到成功');location.href='sign'</Script>";die;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值