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 相关文章推荐
Godaddy空间Zend Optimizer升级方法
May 10 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
ThinkPHP实现事务回滚示例代码
Jun 23 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
Yii中表单用法实例详解
Jan 05 PHP
PHP文件上传处理案例分析
Oct 15 PHP
PHP中使用OpenSSL生成证书及加密解密
Feb 05 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP实现统计代码行数小工具
Sep 19 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 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将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
学习ExtJS border布局
2009/10/08 Javascript
jQuery入门知识简介
2010/03/04 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
Python微信库:itchat的用法详解
2017/08/14 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
Python与C/C++的相互调用案例
2021/03/04 Python
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
音乐专业应届生教师求职信
2013/11/04 职场文书
上班睡觉检讨书
2014/01/09 职场文书
升学宴主持词
2014/04/02 职场文书
导游词怎么写
2015/02/04 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android