php实现每日签到功能


Posted in PHP onNovember 29, 2018

每日签到的功能,供大家参考,具体内容如下

首次签到获得1个积分,第二次签到获得2个积分,第三次签到获得3个积分,以此类推但是签到必须每天连续积分才可以递增,如果有中断再次签到时获得积分仍然从1开始递增;
user: id,username,count,point,sign_time

php实现每日签到功能

sign.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>sign</title>
</head>
<body>
<center>
<input type="text" name="username">
<button>签到</button><span id='span'></span>
<div>
  <table id="box" border="1"></table>
</div>
</center>
</body>
</html>
<script src="jquery.1.12.min.js"></script>
<script>
  $(function(){
    $('button').click(function(){
      var username=$(':text').val();
      $.ajax({
        type:'post',
        url:'admin.php',
        data:{username:username},
        dataType:'json',
        success:function(res){
          if(res.success==1){
            $('#span').html('签到成功');
            var str='<tr><td>用户名</td><td>连续签到天数</td><td>总积分</td></tr>';
            str+='<tr><td>'+res.msg.username+'</td><td>'+res.msg.count+'</td><td>'+res.msg.point+'</td></tr>';
            $('#box').html(str);
          }
        }
      })
    });
  })
</script>

admin.php

<?php 
  header('content-type:text/html;charset=utf-8');
  $pdo=new PDO('mysql:host=localhost;dbname=databasename;','root','root');
  $pdo->exec('set names utf8');
  $username=$_POST['username'];
  $sqlQuery="select * from user where username='$username'";
  $row=$pdo->query($sqlQuery)->fetch(PDO::FETCH_ASSOC);
  if($row){
    $sign_time=$row['sign_time'];
    $sign_time=strtotime($sign_time);
    $int=date('Y-m-d');
    $int=strtotime($int);//5
    $ints=$int+86400;  //6
    $int_s=$int-86400;  //4
    //当天已签到
    if($int<$sign_time&&$sign_time<$ints){
      // echo '您已签到';
    }
    //昨天未签到,积分,天数在签到修改为1
    if($sign_time<$int_s){
      $count=1;
      $point=1;
      $sign_time=date('Y-m-d H:s:i');
      $sqlRow="update user set count='$count',point='$point',sign_time='$sign_time' where username='$username'";
      $res=$pdo->exec($sqlRow);
      // echo '签到成功修改为1';
    }
    //请签到
    if($int_s<$sign_time&&$sign_time<$int){
      $count=$row['count']+1;
      $point=$row['point']+1;
      $sign_time=date('Y-m-d H:s:i');
      $sqlupdate="update user set count='$count',point='$point',sign_time='$sign_time' where username='$username'";
      $res=$pdo->exec($sqlupdate);
      // echo '签到成功+1';
    }
  }else{
    $count=1;
    $point=1;
    $sign_time=date('Y-m-d H:s:i');
    $sqlAdd="insert into user values (null,'$username','$count','$point','$sign_time')";
    $res=$pdo->exec($sqlAdd);
    // echo '恭喜你签到成功----1';
  }
  //////////////////////响应
  $sqlEnd="select * from user where username='$username'";
  $info=$pdo->query($sqlEnd)->fetch(PDO::FETCH_ASSOC);
  echo json_encode(array('success'=>1,'msg'=>$info));die;
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
生成静态页面的PHP类
Nov 25 PHP
解决GD中文乱码问题
Feb 14 PHP
php 删除记录实现代码
Mar 12 PHP
PHP获取当前文件所在目录 getcwd()函数
May 13 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
php小型企业库存管理系统的设计与实现代码
May 16 PHP
php合并数组中相同元素的方法
Nov 13 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
老生常谈PHP位运算的用途
Mar 12 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
PHP序列化的四种实现方法与横向对比
Nov 29 #PHP
PHP中如何使用Redis接管文件存储Session详解
Nov 28 #PHP
php基于Redis消息队列实现的消息推送的方法
Nov 28 #PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 #PHP
PHP实现小程序批量通知推送
Nov 27 #PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 #PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 #PHP
You might like
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
PHP中Http协议post请求参数
2015/11/02 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
详解php实现页面静态化原理
2017/06/21 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
js模糊查询实例分享
2016/12/26 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
Python中字典的基础知识归纳小结
2015/08/19 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
python 实现简易的记事本
2020/11/30 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
家庭教育先进个人事迹材料
2014/01/24 职场文书
指导教师评语
2014/04/26 职场文书
大学生毕业求职信
2014/06/12 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
初中语文教学研修日志
2015/11/13 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
Python OpenCV 图像平移的实现示例
2021/06/04 Python
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis
PHP获取学生成绩的方法
2021/11/17 PHP