本文实例讲述了PHP连续签到功能实现方法。分享给大家供大家参考,具体如下:

require "./global.php";

$act = isset($_GET['act']) ? $_GET['act'] : "error";

// d($act);

switch($act){

case "qiandao":

$uid = intval($_POST['uid']);

$res = $db -> get('qian_dao','*',array('uid'=>$uid));

// last_query();

$time = time();

//判断今天是否签到

$todayBegin=strtotime(date('Y-m-d')." 00:00:00");

$todayEnd= strtotime(date('Y-m-d')." 23:59:59");

$isexit = $db -> get('qian_dao','id',array('AND'=>array('uid'=>$uid,'qian_dao_time[>=]'=>$todayBegin,'qian_dao_time[<=]'=>$todayEnd)));

// last_query();

if($isexit){

// echo "今天已签到!";

Log::writeLog(print_r(array('state'=>'stop','msg'=>'今天已签到!'),true));

echo json_encode(array('state'=>'stop','msg'=>'今天已签到!'));

exit;

}

if($res){

//存在签到

if((time() - $res['qian_dao_time'] > 24*60*60)){ // 判断时间是否大于24小时

// 让字段归0

$addInfo = $db -> update('qian_dao',array('qian_dao_num'=>1,'qian_dao_time'=>$time),array('uid'=>$uid));

}else{

// 更新签到的天数

$addInfo = $db -> update('qian_dao',array('qian_dao_num[+]'=>1,'qian_dao_time'=>$time),array('uid'=>$uid));

}

}else{

// echo '您还没有签到过';

//没有签到过

$db -> insert('qian_dao',array('uid'=>$uid,'qian_dao_num'=>1,'qian_dao_time'=>$time));

// echo $db ->last_query();

}

// 插入签到记录

$db -> insert('sign',array(

'uid'=>$uid,

'dateline'=>$time,

));

// 获取连续签到的天数

$info = $db -> get('qian_dao','qian_dao_num',array('uid'=>$uid));

echo json_encode(array('state'=>'success','msg'=>"您是第".$info."天签到"));

break;

default :

echo json_encode(array("ret"=>0,"msg"=>"操作不存在!"));

break;

}

sql:

CREATE TABLE IF NOT EXISTS `qian_dao` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`uid` int(1) NOT NULL COMMENT '用户id',

`qian_dao_num` int(11) NOT NULL COMMENT '签到次数',

`qian_dao_time` int(11) NOT NULL COMMENT '签到时间',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `sign` (

`uid` int(11) NOT NULL,

`dateline` varchar(10) COLLATE utf8_bin NOT NULL,

KEY `uid` (`uid`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

html:

include './global.php';

$uid = 1;

$todayBegin=strtotime(date('Y-m-d')." 00:00:00");

$todayEnd= strtotime(date('Y-m-d')." 23:59:59");

$isexit = $db -> get('qian_dao','id',array('AND'=>array('uid'=>$uid,'qian_dao_time[>=]'=>$todayBegin,'qian_dao_time[<=]'=>$todayEnd)));

$flag = '';

if($isexit){

$flag = 'current';

}

?>

jquery制作每天或每日打卡签到特效

*{margin:0;padding:0;list-style-type:none;}

a,img{border:0;text-decoration:none;}

/*今日签到*/

.singer{border:1px solid #DCDBDB;padding:10px;height:45px;line-height:45px;width:290px;margin:20px auto;}

.ul{border:1px solid #DCDBDB;padding:0 10px 10px 10px;;width:290px;margin:20px auto;}

.li{border:1px solid #DCDBDB;padding-left:10px;height:25px;line-height:25px;width:280px;margin:10px 0 0 0;}

.singer_l_cont, .singer_r_img{float:left;}

.singer_l_cont{width:145px;background:url(images/sing_per.gif) no-repeat left 12px;text-indent:23px;font-size:12px;}

.singer_r_img{display:block;width:114px;height:52px;background:url(images/sing_week.gif) right 2px no-repeat;vertical-align:middle;float:right;*margin-bottom:-10px;}

.singer_r_img:hover{background-position:right -53px;text-decoration:none;}

.singer_r_img span{margin-left:14px;font-size:16px;font-family:'Hiragino Sans GB','Microsoft YaHei',sans-serif !important;font-weight:700;color:#165379;}

.singer_r_img.current{background:url(images/sing_sing.gif) no-repeat 0 2px;}

每天签到赢取PK币

/*签到模块日期捕捉:*/

function week(){

var objDate= new Date();

var week = objDate.getDay();

switch(week)

{

case 0:

week="周日";

break;

case 1:

week="周一";

break;

case 2:

week="周二";

break;

case 3:

week="周三";

break;

case 4:

week="周四";

break;

case 5:

week="周五";

break;

case 6:

week="周六";

break;

}

$("#sing_for_number").html( week );

}

$(document).ready(function(){

week();

var cache=new Array(); // 缓存变量,当数据被访问过之后放置在缓存中,加快访问速度

$(".singer_r_img").click(function(){

// 如果缓存中存在数据,那么直接从缓存中读取;如果不存在数据,那么就从数据库中读取,并把数据存入缓存

if (typeof(cache['stop'])=='undefined') {

$.ajax({

url:"action.php?act=qiandao",

type:"post",

dataType:'json',

data:{

uid:1,

},

async:false,

success:function(data){

// alert(data.msg);

switch(data.state){

case 'success':

alert(data.msg);

break

case 'stop':

cache['stop'] = data.msg;

alert(data.msg);

break;

}

$(".singer_r_img").addClass("current");

}

})

}else{

alert(cache['stop'])

}

})

})

// 获取签到记录

$sign = $db -> select('sign','*',array('uid'=>$uid,'ORDER'=>'dateline DESC'));

?>

if(empty($sign)){

?>

暂无签到信息

}else{

foreach($sign as $k=>$v){

?>

<?php echo ($k + 1);?> <?php echo date('Y-m-d H:i:s',$v['dateline']);?>

}

}

?>

希望本文所述对大家PHP程序设计有所帮助。

php mysql连续签到跨月_PHP连续签到功能实现方法详解相关推荐

  1. mysql order by 语句_Mysql优化order by语句的方法详解

    本篇文章我们将了解ORDER BY语句的优化,在此之前,你需要对索引有基本的了解,不了解的老少爷们可以先看一下我之前写过的索引相关文章.现在让我们开始吧. MySQL中的两种排序方式 1.通过有序索引 ...

  2. mysql 批量导入sql_MySQL高效导入多个.sql文件方法详解

    MySQL有多种方法导入多个.sql文件(里面是sql语句),常用的有两个命令:mysql和source. 但是这两个命令的导入效率差别很大,具体请看最后的比较. (还有sqlimport和LOAD ...

  3. mongodb mysql 事务_MongoDB数据库两阶段提交实现事务的方法详解 _ 蚂蚁视界

    本文实例讲述了MongoDB数据库两阶段提交实现事务的办法.分享给年夜家供年夜家参考,详细如下: MongoDB数据库中操作单个文档老是原子性的,然而,涉及多个文档的操作,通常被作为一个"事 ...

  4. mysql 存储引擎作用_MySQL常用存储引擎功能与用法详解

    MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE.NDB Cluster.ARCHIVE.CSV. ...

  5. mysql日期比较大小 方式_mysql中日期比较大小方法详解

    在mysql中日期比较有许多的函数,下面我来给大家总结一下常用的mysql中日期比较大小有需要了解的朋友可进入参考参考,假如有个表product有个字段add_time,它的数据类型为datetime ...

  6. mysql ibd文件还原_MySQL单表ibd文件恢复方法详解

    前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行 ...

  7. php 运行外部程序_PHP实现执行外部程序的方法详解

    这篇文章主要介绍了PHP实现执行外部程序的方法,结合实例形式分析了php执行外部程序的常用函数相关使用技巧与注意事项,需要的朋友可以参考下 本文实例讲述了PHP实现执行外部程序的方法.分享给大家供大家 ...

  8. 关于MySQL的存储函数(自定义函数)的定义和使用方法详解

    存储函数 什么是存储函数: 封装一段sql代码,完成一种特定的功能,返回结果. 存储函数的语法: create function 函数([函数参数[,-.]]) Returns 返回类型 Begin ...

  9. phpyun怎么采集_php采集神器cURL使用方法详解

    对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程链接的数据,但是它的可控制性太差了,对于各种复杂情况的采集情景,file_get_co ...

最新文章

  1. 最大似然估计MLE和最大后验估计MAP理解
  2. jQuery 的常用选择器,筛选器
  3. signature=ec663bb1ca3cfa2e278da44aa044d1c6,Fair Exchange of Signatures with Multiple Signers
  4. 禁售苹果手机_苹果、华为供应商工厂突发火灾!浓烟冲天
  5. jquery 特效专辑
  6. Swing basic
  7. TypeError: 'float' object is not iterable
  8. DPM 检测源码分析
  9. Android PDF 的 读取 与 生成
  10. Android 7.0以上安装fiddler CA证书失败解决方法
  11. 顶级公司程序员,一天只写100行代码?
  12. 使用mJS进行物联网嵌入式脚本和开发的新方法
  13. ForkJoinPool 详解
  14. iphone计算机怎样打开声音,8个iOS必知小技巧!iPhone的声音还可以调更大哦!
  15. echarts 圆角环形图
  16. win32 透明窗口无边框模版
  17. Carrey的第一篇博客
  18. “首席用户官”到底应该是CUO(Chief User Officer)还是CCO(Chief Customer Officer)
  19. easyexcel 列宽、行高、样式
  20. 【批处理】一键重构Windows图标缓存------解决win10部分图标加载问题

热门文章

  1. 计算机网络动画是什么软件,把动漫人头p人身上的软件叫什么 软件介绍
  2. 基本符号有_【国际数学】数学基本符号介绍
  3. cent 8.0 安装tomcat 9.0_Tomcat部署及优化
  4. Eclipse 里一个 SAP Hybris Commerce 的开发插件
  5. SAP Commerce Cloud 里的 Media 概念简述
  6. SAP Spartacus buildCmsStructure 构建逻辑
  7. SAP Spartacus CMS 页面加载逻辑和性能的优化
  8. 如何在Component template函数执行时查看ɵɵtemplate或者ɵɵproperty传入的参数值
  9. R3Injector实例里的records map的填充逻辑
  10. SAP Spartacus cms-components.service.ts里的config.cmsComponents