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 验证图片生成函数
May 21 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
php 来访国内外IP判断代码并实现页面跳转
Dec 18 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
php二维码生成
Oct 19 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
php多线程并发实现方法
Sep 30 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
在laravel中实现事务回滚的方法
Oct 10 PHP
详解PHP Swoole与TCP三次握手
May 27 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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
PHP数据缓存技术
2007/02/14 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
django加载本地html的方法
2018/05/27 Python
python脚本实现验证码识别
2018/06/07 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
ET Mall东森购物网:东森严选
2017/03/06 全球购物
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
电气工程师岗位职责
2014/01/01 职场文书
大学学习生活感言
2014/01/18 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
教师群众路线心得体会
2014/11/04 职场文书
工程部主管岗位职责
2015/02/12 职场文书
老员工辞职信范文
2015/05/12 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS