php实现签到功能的方法实例分析(附代码)

今天来学习下php实现签到功能的方法。代码我也分享给大家供大家参考,具体如下:

首先我在数据库里建了两张表,一个是用户的积分表,一个是签到状态表,分来用来记录用户的积分数和先到状态

php实现签到功能的方法实例分析(附代码) php实现签到功能的方法实例分析(附代码)

在用户签到状态表中我们有一个字段,last_sign_time,即上一次签到时间,每次可以签到的时候把这个时间与当前时间进行比较 如果相差为0天,则说明今天已签到(这个签到是24小时内只能签到一次,即两次签到时间要相差24小时以上).如果等于一天则今日可以签到,如果2天及其以上则说明漏签了.

通过时间戳的判断,及时更新状态表,并且当可以签到的时候则对用户积分表进行操作,即更新用户积分.

具体代码如下:

";
      $total_day=$row[5];
    }
      //根据上次签到时间和这次签到时间作比较判断有没有漏签和今日是否已签到
      $current_total_day=intval($total_day)+1;
      $current_day=time();
      $ary = timediff($last_time,$current_day);
    if($ary[day]==0){//今天已签到
       exit(json_encode(array('status'=>"success",'code'=>"5")));
        mysqli_close($link);//关闭连接 
        exit();
    }else if($ary[day]==1){//没有漏签
      $usdateq = "UPDATE user_signin SET last_sign_time='$current_day', total_day='$current_total_day' WHERE user_id=$user_id;"; //更新
      mysqli_query($link,"SET NAMES utf8");
      $ustaters = mysqli_query($link,$usdateq); //获取数据集
      if($ustaters ==1){
      upuserscore($current_total_day);
          //exit(json_encode(array('status'=>"success",'code'=>"100")));
        mysqli_close($link);//关闭连接 
        exit();
      }else{
          exit(json_encode(array('status'=>"success",'code'=>"1")));
           mysqli_close($link);//关闭连接
         exit();
      }
    }else{//漏签过
    $usdateq = "UPDATE user_signin SET last_sign_time='$current_day', total_day=1 WHERE user_id=$user_id;"; //更新
    mysqli_query($link,"SET NAMES utf8");
    $ustaters = mysqli_query($link,$usdateq); //获取数据集
    if($ustaters ==1){
      upuserscore($current_total_day);
        //exit(json_encode(array('status'=>"success",'code'=>"100")));
      mysqli_close($link);//关闭连接 
      exit();
    }else{
        exit(json_encode(array('status'=>"success",'code'=>"1")));
       mysqli_close($link);//关闭连接
       exit();
    }
  }
  }else{//没有该用户记录则插入
    $current_day=time();
    $insertq = "insert into user_signin (user_id,last_sign_time,total_day)values($user_id,'$current_day',1)"; //SQL插入语句
    mysqli_query($link,"SET NAMES utf8");
    $insertrs = mysqli_query($link,$insertq); //获取数据集
    if(strpos($insertrs,"SELECT") === false){//出入数据成功
      upuserscore('1');
      //exit(json_encode(array('status'=>"success",'code'=>"100")));
      }
  }
  mysqli_close($link);//关闭连接
?>

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/4607.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2018年3月10日 16:37
下一篇 2018年3月10日 17:25

相关推荐

  • PHP中的编辑器和IDE。

    纵观现今互联网开发领域,PHP一度成为最受欢迎的的编程语言之一。许多公司和个人使用PHP开发网站、应用程序和电子商务解决方案。而在PHP开发中,选择一款优秀的编辑器和IDE是非常重要的,因为它们可以提高我们的...

    2023年5月28日
    01
  • PHP析构函数的快速入门案例

    PHP析构函数的快速入门案例 代码🙁基本的使用案例)

    2018年4月11日
    0200
  • 如何用PHP实现微信公众号数据统计

    随着微信公众号逐渐成为企业营销的重要工具之一,对公众号数据的统计分析也变得越来越重要。通过数据分析,可以了解公众号的粉丝数量、活跃度、用户转化率等指标,从而优化运营策略和提高营销效果。本文将介绍如...

    2023年5月18日
    00
  • PHP8.0中的事件处理库:Event

    PHP8.0中的事件处理库:Event随着互联网的不断发展, PHP作为一门流行的后台编程语言,被广泛应用于各种Web应用程序的开发中。在这个过程中,事件驱动机制成为了非常重要的一环。PHP8.0中的事件处理库Event将为我...

    2023年5月19日
    01
  • 分析PHP URL中特殊字符引起的问题(+,\\,=)

    PHP中URL中特殊字符引起的问题(+,,=)前言,在做某个渠道的过程中,发现一个验签错误的问题。但是,当时验签在两个地方表现不一致,同一套处理方法,想到了这是因为两个地方请求方式是不同的一个get方法另外一个自...

    2022年6月23日
    0145
  • 详解PHP中的数组分页实现(非数据库)

    在日常开发的业务环境中,我们一般都会使用 MySQL 语句来实现分页的功能。但是,往往也有些数据并不多,或者只是获取 PHP 中定义的一些数组数据时需要分页的功能。这时,我们其实不需要每次都去查询数据库,可以...

    2023年3月29日
    01
  • 一文了解PHP中的进程和进程间通信

    本篇文章带大家了解一下PHP中的进程和进程间通信。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。环境php中的进程是以扩展的形式来完成。通过这些扩展,我们能够很轻松的完成进程的一系列动...

    2023年3月29日
    00
  • 如何在PHP中使用TDD。

    随着软件开发中采用敏捷开发的方式越来越普及,测试驱动开发(TDD)已经成为许多开发人员的重要实践。在TDD中,写代码之前先编写测试用例,通过测试来驱动整个开发过程。这篇文章将介绍如何在PHP中使用TDD来开发...

    2023年5月23日
    01

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息