无名 发表于 2022-5-8 18:07:35

教程 PHP连续签到功能实现方法详解及实例

------
华衿北工作室
------

本文实例讲述了PHP连续签到功能实现方法。分享给大家供大家参考,具体如下:
php代码:
require "./global.php";
$act = isset($_GET['act']) ? $_GET['act'] : "error";
// d($act);
switch($act){
    case "qiandao":
      $uid = intval($_POST['uid']);
      $res = $db -> get('qian_dao','*',array('uid'=>$uid));
      // last_query();
      $time = time();
      //判断今天是否签到
      $todayBegin=strtotime(date('Y-m-d')." 00:00:00");
      $todayEnd= strtotime(date('Y-m-d')." 23:59:59");
      $isexit = $db -> get('qian_dao','id',array('AND'=>array('uid'=>$uid,'qian_dao_time[>=]'=>$todayBegin,'qian_dao_time[$todayEnd)));
      // last_query();
      if($isexit){
      // echo "今天已签到!";
      Log::writeLog(print_r(array('state'=>'stop','msg'=>'今天已签到!'),true));
      echo json_encode(array('state'=>'stop','msg'=>'今天已签到!'));
      exit;
      }
      if($res){
      //存在签到
      if((time() - $res['qian_dao_time'] > 24*60*60)){ // 判断时间是否大于24小时
          // 让字段归0
          $addInfo = $db -> update('qian_dao',array('qian_dao_num'=>1,'qian_dao_time'=>$time),array('uid'=>$uid));
      }else{
          // 更新签到的天数
          $addInfo = $db -> update('qian_dao',array('qian_dao_num[+]'=>1,'qian_dao_time'=>$time),array('uid'=>$uid));
      }
      }else{
      // echo '您还没有签到过';
      //没有签到过
      $db -> insert('qian_dao',array('uid'=>$uid,'qian_dao_num'=>1,'qian_dao_time'=>$time));
      // echo $db ->last_query();
      }
      // 插入签到记录
      $db -> insert('sign',array(
      'uid'=>$uid,
      'dateline'=>$time,
      ));
      // 获取连续签到的天数
      $info = $db -> get('qian_dao','qian_dao_num',array('uid'=>$uid));
      echo json_encode(array('state'=>'success','msg'=>"您是第".$info."天签到"));
      break;
    default :
      echo json_encode(array("ret"=>0,"msg"=>"操作不存在!"));
      break;
}

SQL代码:
    好吧好吧,字数不够了,我会在评论区发布代码
http://cdn.u1.huluxia.com/g3/M01/B3/67/wKgBOV5skHaAPwqaAAA8trKv-HU595.pnghttp://cdn.u1.huluxia.com/g3/M01/B3/67/wKgBOV5skHeABiI9AABCogpFtm0974.pnghttp://cdn.u1.huluxia.com/g3/M01/B3/67/wKgBOV5skHeAdfUjAABEAxbFbIo720.jpg
页: [1]
查看完整版本: 教程 PHP连续签到功能实现方法详解及实例