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操作MySQL详细自学教程(附代码)

      开启PHP操作MySQL的函数库    查看是否开启MySQL函数库功能 创建一个php文件,在这个文件中写phpinfo();,查看当前文件是否有MySQL。 三、   PHP操作MySQL的流程   1.链接数据库 2.选择数据库并设置编码 3...

    2018年3月30日 PHP自学教程
    01.3K
  • 处理 PHP 开发版本问题

    一、Composer 安装包composer install 之后报错vagrant@homestead:~/Code/sample$ composer install Loading composer repositories with package information Installing dependencies (including require-dev) ...

    2022年6月25日
    0150
  • Memcache缓存技术在PHP中优化数据交互的实践和思考。

    Memcache缓存技术在PHP中优化数据交互的实践和思考在现代的Web应用中,数据交互是一个非常重要的问题,它没有足够的高效性,将会限制Web应用程序的扩展性和性能。为了加快数据交互速度,我们通常的做法是优化数据...

    2023年5月21日
    00
  • 使用PHP开发直播功能的详细教程。

    随着网络技术的不断发展,直播功能正在变得越来越流行。在这样一个背景下,越来越多的开发者正在使用PHP语言开发直播功能,以满足市场需求。本篇文章将针对如何使用PHP语言开发直播功能,提供一个详细的教程,帮...

    2023年5月30日
    042
  • 循环结构---DO...WHILE循环

    语法: 变量的初始化; Do{ 达成条件运行的代码; 变量的变化; }while(条件表达式) 注意:dowhile循环不管条件是否达成,都会运行一次循环中的代码; 案例:输出1-100 图解: 案例:99乘法表

    2018年1月9日
    0405
  • PHP商城开发中的最佳实践

    在当今数字时代,电子商务和在线购物已经成为越来越多人生活中的不可或缺的一部分。而PHP是开发在线商城的一种流行编程语言,它现在已经被广泛采用在各种规模的电子商务网站中。但是,PHP商城的开发也存在着很多...

    2023年5月18日
    01
  • 打造流畅和高效的PHP直播功能。

    随着现代互联网技术的快速发展,直播已成为一种流行的方式。直播不仅可以提供实时交流、互动和娱乐,还可以为企业、组织和个人提供无限的商业机会。在直播领域,PHP直播功能正在经历一次重要的变革,使得直播和其...

    2023年5月23日
    00
  • PHP和Redis中的LUA脚本使用方法

    PHP和Redis中的LUA脚本使用方法LUA 是一种轻量级的脚本语言,旨在提供高效的嵌入式扩展功能。Redis 是一种开源的 NoSQL 数据库,提供高效的键值存储和缓存功能。在 Redis 中使用 LUA 脚本可以大大提高数据处理效...

    2023年5月19日
    05

联系我们

QQ:951076433

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