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的FTP学习(二)[转自奥索]
Oct 09 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
php设计模式之委托模式
Feb 13 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 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
PHP6 先修班 JSON实例代码
2008/08/23 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
vue权限管理系统的实现代码
2019/01/17 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
Python自动登录126邮箱的方法
2015/07/10 Python
Python生成密码库功能示例
2017/05/23 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
Python 没有main函数的原因
2020/07/10 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
酒店员工检讨书
2014/02/18 职场文书
销售口号大全
2014/06/11 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
写一个Python脚本自动爬取Bilibili小视频
2021/04/24 Python
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python