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版(5)
Oct 09 PHP
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
用PHP实现读取和编写XML DOM代码
Apr 07 PHP
php中inlcude()性能对比详解
Sep 16 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 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函数代码
2010/04/22 PHP
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
复杂的javascript窗口分帧解析
2016/02/19 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
详解Django框架中的视图级缓存
2015/07/23 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
python计算auc的方法
2020/09/09 Python
pymysql模块使用简介与示例
2020/11/17 Python
Python urllib3软件包的使用说明
2020/11/18 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
Shein英国:女性时尚网上商店
2019/04/10 全球购物
空中乘务员岗位职责
2014/03/08 职场文书
经理任命书模板
2014/06/06 职场文书
民族精神月活动总结
2014/08/28 职场文书
领导班子对照检查材料
2014/09/22 职场文书
2014财务年度工作总结
2014/11/11 职场文书
自我检讨报告
2015/01/28 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
论文答辩开场白大全
2015/05/27 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
Python基于百度AI实现抓取表情包
2021/06/27 Python
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技