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 相关文章推荐
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 PHP
PHP中,文件上传
Dec 06 PHP
在数据量大(超过10万)的情况下
Jan 15 PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
php修改指定文件后缀的方法
Sep 11 PHP
使用PHP实现阻止用户上传成人照片或者裸照
Dec 25 PHP
php数组去除空值函数分享
Feb 02 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
PHP基于phpqrcode类生成二维码的方法详解
Mar 14 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
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
PHP 面向对象 final类与final方法
2010/05/05 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
phpwind放自动注册方法
2006/12/02 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
python xpath获取页面注释的方法
2019/01/14 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
css3中transition属性详解
2014/09/02 HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
大学生求职简历的自我评价范文
2013/10/12 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
志愿者事迹材料
2014/12/26 职场文书
大雁塔导游词
2015/02/04 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
Python打包为exe详细教程
2021/05/18 Python