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

相关推荐

  • 循环结构---FOR循环

    语法: For(变量初始化;条件表达式;变量的变化){ 循环体; } 案例:1-99 注意:变量初始化可以是多个,用逗号隔开。 注意:条件判断可以是多个,每个用逗号隔开。 图解:

    2018年2月24日 PHP自学教程
    0434
  • 如何使用PHP实现商城的预售功能。

    随着电子商务行业的发展,预售功能逐渐成为电商平台赢得消费者青睐的必备选项之一。预售是指商家在正式售卖商品前提供一定数量的商品预订服务,即顾客可以提前下单预定未来上市的商品。在预售阶段,商家可以通过各…

    2023年5月23日
    01
  • 如何在PHP中使用Memcache进行对象缓存。

    随着互联网应用的发展,对于性能和速度的需求也越来越高。而对于PHP开发者来说,常见的性能问题之一就是数据库查询效率。为了提高性能,我们通常会使用缓存技术,其中对象缓存就是一种常见的缓存技术之一。 而在对…

    2023年5月21日
    00
  • PHP中使用Redis实现分布式锁升级版。

    随着Web应用的发展,分布式架构已经成为了越来越多应用的标配。但是,在分布式架构中,如何保证多个应用同时访问同一资源的互斥性,保证数据的一致性,就成为了每个开发人员需要面对的问题。分布式锁就是一种保证互…

    2023年5月21日
    03
  • PHP8.0中的SSH连接库:phpseclib

    小编前言:本篇文章主要介绍PHP8.0中的SSH连接库phpseclib,旨在帮助PHP开发者更加深入了解和应用这个工具。 随着互联网技术的不断发展,远程操作服务器成为了越来越多开发者必须面对的问题。其中,SSH连接是一种非…

    2023年5月18日
    04
  • PHP图像处理技术应用-验证码的使用

    验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意…

    2018年9月6日
    0357
  • PHP中Memcache缓存原理及其对缓存数据的作用

    随着互联网的发展,数据量的快速增长,缓存技术的应用越来越广泛,它既可以提升网站的访问速度,也可以减轻服务器的负担。在服务器端,Memcache作为 PHP 缓存技术的一种,被广泛应用于大型网站的访问优化。本文将介…

    2023年5月19日
    00
  • 自学PHP的绘图具体演示(附代码)

    (1)绘制线条  imageline() (2)绘制三角形:imageline() (3)绘制矩形:imagerectangle()、imagefilledrectangle() 描边矩形:imagerectangle() 填充矩形:imagefilledrectangle() (4)绘制圆形 和 椭圆形:im…

    2018年9月1日 PHP自学教程
    0459

联系我们

QQ:951076433

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