PHP连续签到功能实现方法详解
时间:2022-07-27
本文章向大家介绍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:
<?php
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';
}
?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
<html xmlns="http://www.w3.org/1999/xhtml"
<head
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
<title jquery制作每天或每日打卡签到特效</title
<meta name="description" content="jquery制作论坛或社交网站的每日或每天打卡签到特效,点击打卡标签显示打卡签到效果。jquery下载" /
</head
<body
<style type="text/css"
*{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;}
</style
<div class="singer"
<div class="singer_l_cont"
<span 每天签到赢取PK币</span
</div
<div class="singer_r_r"
<a class="singer_r_img <?php echo $flag;? " href="#" rel="external nofollow"
<span id="sing_for_number" </span
</a
</div
</div <!--singer end--
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" </script
<script type="text/javascript"
/*签到模块日期捕捉:*/
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'])
}
})
})
</script
</body
</html
<?php
// 获取签到记录
$sign = $db - select('sign','*',array('uid'= $uid,'ORDER'= 'dateline DESC'));
?
<ul class='ul'
<?php
if(empty($sign)){
?
<li class="li" 暂无签到信息</li
<?php
}else{
foreach($sign as $k= $v){
?
<li class="li" <span <?php echo ($k + 1);? </span <?php echo date('Y-m-d H:i:s',$v['dateline']);? </li
<?php
}
}
?
</ul
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
- HDUOJ---1241Oil Deposits(dfs)
- HDUOJ------2398Savings Account
- HDUOJ-----2399GPA
- HDUOJ----旋转的二进制
- HDUOJ---3743Frosh Week(BIT+离散化)
- Node.js新手必须知道的4个JavaScript概念
- HUDOJ-----1394Minimum Inversion Number
- 提升 Node.js 应用性能的 5 个技巧
- HDUOJ-----1166敌兵布阵
- HDUOJ------2492Ping pong
- HDUOJ----2489 Minimal Ratio Tree
- HDUOJ----2487Ugly Windows
- HDUOJ--------1003 Max Sum
- HDUOJ -----1864 最大报销额(动态规划)
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Celery 4 初体验及踩坑
- MySQL 最佳实践:gh-ost 工具使用详解
- 如何将 Hexo 博客部署到云开发静态网站托管
- WordPress 静态化部署到云开发网站托管
- 如何用云应用快速部署一个nodebb的开源论坛
- 【一起学系列】之装饰器模式:不改代码增强功能?
- Hello!GitHub 好用好玩值得收藏的开源项目集合~
- 【一起学系列】之工厂模式:产品?产品族?
- 再见,Navicat!同事安利的这个IDEA的兄弟,真香!
- 【一起学系列】之单例模式:只推荐三种~
- 【一起学系列】之命令模式:封装一个简单Jedis?
- 轻松学Pytorch-实现自定义对象检测器
- Elasticsearch 升级 7.x 版本后,我感觉掉坑里了!
- 【一起学系列】之适配器模式:还有外观模式呢
- 【翻译】200行代码讲透RUST FUTURES (5)