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/4516.html

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

(0)
重蔚的头像重蔚管理团队
上一篇 2018年3月5日 12:05
下一篇 2018年3月7日 11:05

相关推荐

  • PHP浮点型--FLOAT

    说明:小数,浮点型(也叫浮点数 float,双精度数 double 或实数 real) PHP中的小数有两种表现形式:普通的小数和科学计数法 浮点数的精度有限。尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导…

    2017年11月20日
    0190
  • php array_column()函数介绍(实例)

    函数介绍: array_column() 返回返回一个数组,数组的值为输入数组中某个单一列的值。 (推荐教程:php图文教程) 语法: array_column(array,column_key,index_key); 参数: array 必需。指定要使用的多维数组(记…

    2022年6月15日
    0181
  • Redis在PHP应用中的集群监控。

    Redis是一种基于内存的开源数据结构存储系统,广泛用于缓存、消息队列、任务分发等场景。在PHP应用中,Redis常常扮演着重要的角色。随着业务的不断扩展,Redis集群的规模也会逐渐增大,如何进行有效的监控是保障应…

    2023年5月21日
    02
  • PHP中的MySQL操作指南。

    PHP是Web开发中最常用的编程语言之一,而MySQL则是最受欢迎的关系型数据库管理系统之一。在Web应用程序开发过程中,PHP的一个主要功能就是与MySQL数据库进行交互,以存储和检索数据。本文将为您提供一个基本的MySQL…

    2023年5月23日
    00
  • 示例PHP购物车类Cart.class.php定义与用法

    本文实例讲述了PHP购物车类Cart.class.php定义与用法。分享给大家供大家参考,具体如下: 之前的开发人员使用了JS的技术开发了一套前台购物车(删除添加什么的都使用JS),但是浏览器兼容不好, 今天终于出问题了, 有个…

    2022年6月11日
    0128
  • PHP函数的封装性

    使用一个表单,输入任意数字,使之可以在2,8,16进制到10进制或10进制到2,8,16进制之间转换,形式大致如下如下: 原始代码实现 Document 数: 十进制转二进制 二进制转十进制

    2018年4月5日 PHP自学教程
    0207
  • php微信第三方实现一键登录及获取用户信息的方法(附代码)

    具体如下: 注意:要使用微信在第三方网页登录是需要“服务号”才可以哦,所以必须到官方申请。 一开始你需要进入微信公众平台开启开发模式,并且填写oauth2的回调地址,地址填写你项目的域名就可以了.比如:www.baidu.c…

    2018年3月2日
    0234
  • PHP中的项目整合。

    随着互联网技术的不断发展,越来越多的企业和个人开始使用PHP语言来开发网站和应用程序。在大型项目中,经常需要整合多个PHP项目以实现更强大的功能和更好的用户体验。本文将介绍PHP项目整合的一些常见方法和注意事…

    2023年5月28日
    01

联系我们

QQ:951076433

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