您现在的位置是:网站首页> 编程资料编程资料
PHP连续签到功能实现方法详解_php技巧_
2023-05-25
288人已围观
简介 PHP连续签到功能实现方法详解_php技巧_
本文实例讲述了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:
get('qian_dao','id',array('AND'=>array('uid'=>$uid,'qian_dao_time[>=]'=>$todayBegin,'qian_dao_time[<=]'=>$todayEnd))); $flag = ''; if($isexit){ $flag = 'current'; } ?>jquery制作每天或每日打卡签到特效 select('sign','*',array('uid'=>$uid,'ORDER'=>'dateline DESC')); ?>- 暂无签到信息 $v){ ?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
相关内容
- Laravel框架Eloquent ORM修改数据操作示例_php实例_
- Laravel框架Eloquent ORM删除数据操作示例_php实例_
- Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】_php实例_
- Laravel框架Blade模板简介及模板继承用法分析_php实例_
- 在phpstudy集成环境下的nginx服务器下配置url重写_php实例_
- php 实现简单的登录功能示例【基于thinkPHP框架】_php实例_
- 关于Yii2框架跑脚本时内存泄漏问题的分析与解决_php实例_
- 详解no input file specified 三种解决方法_php实例_
- 设定php简写功能的方法_php技巧_
- 如何在centos8自定义目录安装php7.3_php实例_
