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实现微信小程序中的即时通讯功能。

    随着移动互联网的不断发展,微信小程序已经成为了一个不可或缺的移动应用程序。它方便快捷,资源占用小,更适合于一些轻量级的应用程序的开发。随着微信小程序的普及,越来越多的开发者开始关注小程序的实时通讯功…

    2023年6月3日
    04
  • 今日分享php网站怎么搭建环境配置,PHP网站搭建环境。

    搭建PHP网站环境配置可以分为以下几个步骤: 1. 安装Web服务器:首先需要选择一个合适的Web服务器来托管你的PHP网站,常见的Web服务器有Apache和Nginx,这里以Apache为例进行介绍。 2. 安装PHP解释器:PHP是一种脚…

    2024年6月28日
    06
  • PHP内部函数的说明

    说明:在一个函数内部再定义函数,这个时候里面的函数只能在函数内使用,不能在外部使用,防止外部人调用函数,这种函数方式不多,面向对象中都是这种方式。 案例  

    2018年4月7日
    0370
  • 学习php+jQuery+Ajax实现点赞效果的方法

    本文实例讲述了php+jQuery+Ajax实现点赞效果的方法。分享给大家供大家参考,具体如下:数据库设计先准备两张表,pic表保存的是图片信息,包括图片对应的名称、路径以及图片“赞”总数,pic_ip则记录用户点击赞后的IP…

    2022年6月16日
    0185
  • php运算符的说明介绍

    说明:对操作数进行运算的符号,就是运算符。 表达式:表达式是 PHP 最重要的基石。在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是"任何有值的东西"。 如:$a = 5; $a = …

    2017年12月2日
    0213
  • 基于PHP的Memcached缓存技术实现Web应用的优化。

    随着Web应用的不断发展,用户对页面响应速度和访问速度的要求也越来越高。缓存技术作为优化Web应用性能的重要手段之一,一直备受关注。PHP语言作为服务器端最流行的语言之一,可以通过使用Memcached缓存技术来优化W…

    2023年5月21日
    03
  • Redis中的布隆过滤器和PHP的使用方法。

    Redis是一个开源的内存数据库,被广泛应用于缓存、消息队列、分布式锁等场景。其中,布隆过滤器是一种高效的数据结构,可以用于判断一个元素是否存在于一个集合中,在Redis中得到了广泛的应用。本文将介绍Redis中布…

    2023年5月21日
    00
  • PHP的浮点类型float, double, real

    浮点类型float, double, real有两种写法: $v1 = 1.234;   //带小数点,,就是浮点类型 $v2 = 1.234E3; //含义是:1.234乘以10的3次方,即1234,带E的形式就是浮点数 $v3 = 1234E3;//结果值是1234000,但也是一…

    2018年3月14日 PHP自学教程
    0608

联系我们

QQ:951076433

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