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制作图型计数器的例子
Oct 09 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
PHP多例模式介绍
Jun 24 PHP
php自动给网址加上链接的方法
Jun 02 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
Aug 15 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 PHP
php数组遍历类与用法示例
May 24 PHP
php适配器模式简单应用示例
Oct 23 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注释实例技巧
2008/10/03 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
php生成短域名函数
2015/03/23 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
Python探索之ModelForm代码详解
2017/10/26 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
python版飞机大战代码分享
2018/11/20 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
如何基于python实现不邻接植花
2020/05/01 Python
用Python进行websocket接口测试
2020/10/16 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
保安的辞职报告怎么写
2014/01/20 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
Nginx配置根据url参数重定向
2022/04/11 Servers
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android