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日
下一篇 2018年3月10日

相关推荐

  • PHP调用华为云短信接口实现短信发送。

    随着智能手机的流行,短信已经成为了人们生活中必不可少的一部分。不论是商业还是个人用途,短信都是一种重要的沟通方式。华为云是一家领先的云计算服务提供商,为了满足用户需求,华为云提供了短信服务。在这篇文…

    2023年5月30日
    03
  • PHP数组的介绍

    说明:一组(一堆)数据的集合,把多个数据进行组合,数组是由“元素”组成。 题:有6头牛,求牛的总体重和平均体重。 改进成数组的方式:

    2018年4月7日
    0407
  • 带你理解PHP中的Generator

    何为 Generator从 PHP 5.5 开始,PHP 加入了一个新的特性,那就是 Generator,中文译为生成器。生成器可以简单地用来实现对象的迭代,让我们先从官方的一个小例子说起。xrange在 PHP 中,我们都知道,有一个函数叫…

    2022年6月23日
    0154
  • php常用函数-(10)php字符串处理常用的函数

    addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符 addslashes — 使用反斜线引用字符串 bin2hex — 将二进制数据转换成十六进制表示 chop — rtrim() 的别名 chr — 返回指定的字符 chunk_split — 将字符串分…

    2015年12月7日
    0261
  • PHP中级项目涉及的英语单词!

    B2C:business to customer 商家对客户 C2C:customer to customer 客户对客户 B2B:business to business 商家对商家 B2B2C:business to business to customer 商家对商家对客户 O2O:online to offline 线上线下…

    2018年4月30日
    0347
  • PHP入门指南:数据库优化。

    随着互联网的快速发展,数据库成为了许多企业应用系统的核心组件之一。而PHP作为流行的Web编程语言,对数据库的操作也是尤为频繁。数据库优化是提高应用系统性能的重要手段之一,本文将从PHP应用的角度出发,为大家…

    2023年5月22日
    01
  • 学习PHP中使用Session配合Javascript实现文件上传进度条功能

    Web应用中常需要提供文件上传的功能。典型的场景包括用户头像上传、相册图片上传等。当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了。在PHP 5.4以前,实现这样的进度条并不容易,主要有…

    2022年6月12日
    0133
  • PHP中的Symfony框架指南。

    PHP是一门广为使用的编程语言,它具有广泛的应用领域和强大的功能。而Symfony框架则是PHP中的一种流行的开源框架,可让开发者更轻松地构建Web应用程序。本篇文章将向您介绍Symfony框架的一些基本概念和技术,以帮助…

    2023年5月23日
    04

联系我们

QQ:951076433

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