首页 > 作文

php实现签到功能的方法详情

更新时间:2023-04-07 05:10:52 阅读: 评论:0

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

首先我在里建了两张表,一个是用户的积分表,一个是签到状态表,分来用来记录用户的积分数和先到状态

在用户签到状态表中我们有一个字段,last_sign_time,即上一次签到时间,每次可以签到的时候把这个时间与当前时间进行比较 如果相差为0天,则说明今天已签到(这个签到是24小时内只能签到一次,即两次签到时间要相差24小时以上).如果等于一天则今日可以签到,如果2天及其以上则说明漏签了.

通过时间戳的判断,及时更新状态表,并且当可以签到的时候则对用户积分表进行操作,即更新用户积分.

具体代码如下:

$ur_id=@$_request['ur_id'];//功能:计算两个时间戳之间相差的日时分秒//$begin_time 开始时间戳//$end_time 结束时间戳function timediff($begin_time,$end_time){if($begin_time < $end_time){$starttime = $begin_time;$endtime = $end_time;}el{$starttime = $end_time;$endtime = $begin_time;}//计算天数$timediff = $endtime-$starttime;$days = intval($timediff/86400);//计算小时数$remain = $timediff%86400;$hours = intval($remain/3600);//计算分钟数$remain = $remain%3600;$mins = intval($remain/60);//计算秒数$cs = $remain%60;$res = array("day" => $days,"hour" => $hours,"min" => $mins,"c" => $cs);return $res;}function upurscore($current_total_day){$ur_id=@$_request['ur_id'];//读取数据库配置信息的ini文件$ary=par_ini_file('db.ini');$db_login_name=ba64_decode($ary['db_login_name']);$db_login_password=ba64_decode($ary['db_login_password']);$db_host=ba64_decode($ary['db_host']);$db_name=ba64_decode($ary['db_name']);//链接数据库$scorelink=mysqli_connect($db_host,$db_login_name,$db_login_password);mysqli_lect_db($scorelink,$db_name); //选择跟雨有关的诗句数据库//检查积分表里是否有该用户 有的话则更新数据 没有的话则插入伟大的平凡数据$scoreq = "lect 对不起我爱你演员* from ur_score where ur_id=$ur_id"; //sql插入语句mysqli_query($scorelink,"t names utf8");$rs = mysqli_query($scorelink,$scoreq); //获取数据集if(!$rs){exit(json_encode(array('status'=>"success",'code'=>"1",'error'=>mysqli_error($scorelink))));}if(mysqli_num_rows($rs)){//该用户有数据 则更新其积分信息$total_score="";while($row = mysqli_fetch_row($rs)) {$total_score=$row[4];}$scoreusdateq = "update ur_score t ur_total_score ='98' where ur_id=$ur_id;"; //更新mysqli_query($scorelink,"t names utf8");$ustaters = mysqli_query($scorelink,$scoreusdateq); //获取数据集if($ustaters ==1){exit(json_encode(array('status'=>"success",'code'=>"100")));mysqli_clo($scorelink);//关闭连接exit();}el{exit(json_encode(array('status'=>"success",'code'=>"1")));mysqli_clo($scorelink);//关闭连接exit();}}el{//没有该用户数据 则插入其积分信息$scoreinrtq = "inrt into ur_score (ur_id,ur_total_score)values($ur_id,10)"; //sql插入语句mysqli_query($scorelink,"t names utf8");$rs = mysqli_query($scorelink,$scoreinrtq); //获取数据集if(!$rs){exit(json_encode(array('status'=>"success",'code'=>"1",'error'=>mysqli_error($scorelink))));}if(strpos($q,"lect") === fal){exit(json_encode(array('status'=>"success",'code'=>"100")));}mysqli_clo($scorelink);//关闭连接}}//读取数据库配置信息的ini文件$ary=par_ini_file('db.ini');$db_login_name=ba64_decode($ary['db_login_name']);$db_login_password=ba64_decode($ary['db_login_password']);$db_host=ba64_decode($ary['db_host']);$db_name=ba64_decode($ary['db_name']);//链接数据库$link=mysqli_connect($db_host,$db_login_name,$db_login_password);mysqli_lect_db($link,$db_name); //选择数据库//检查签到表里是否有该用户 有的话则更新数据 没有的话则插入数据$q = "lect * from ur_signin where ur_id=$ur_id"; //sql插入语句mysqli_query($link,"t names utf8");$rs = mysqli_query($link,$q); //获取数据集if(!$rs){exit(json_encode(array('status'=>"success",'code'=>"1",'error'=>mysqli_error($link))));}if(mysqli_num_rows($rs)){//该用户有数据 则更新其签到信息$last_time="";$total_day="";while($row = mysqli_fetch_row($rs)) {$last_time=$row[4]."";$total_day=$row[5];}//根据上次签到时间和这次签到时间作比较判断有没有漏签和今日是否已签到$current_total_day=intval($total_day)+1;$current_day=time();$ary = timediff($last_time,$current_day);if($ary[day]==0){//今天已签到exit(json_encode(array('status'=>"success",'code'=>"5")));mysqli_clo($link);//关闭连接exit();}el if($ary[day]==1){//没有漏签$usdateq = "update ur_signin t last_sign_time='$current_day', total_day='$current_total_day' where ur_id=$ur_id;"; //更新mysqli_query($link,"t names utf8");$ustaters = mysqli_query($link,$usdateq); //获取数据集if($ustaters ==1){upurscore($current_total_day);//exit(json_encode(array('status'=>"success",'code'=>"100")));mysqli_clo($link);//关闭连接exit();}el{exit(json_encode(array('status'=>"success",'code'=>"1")));mysqli_clo($link);//关闭连接exit();}}el{//漏签过$usdateq = "update ur_signin t last_sign_time='$current_day', total_day=1 whe纯色壁纸re ur_id=$ur_id;"; //更新mysqli_query($link,"t names utf8");$ustaters = mysqli_query($link,$usdateq); //获取数据集if($ustaters ==1){upurscore($current_total_day);//exit(json_encode(array('status'=>"success",'code'=>"100")));mysqli_clo($link);//关闭连接exit();}el{exit(json_encode(array('status'=>"success",'code'找萝卜=>"1")));mysqli_clo($link);//关闭连接exit();}}}el{//没有该用户记录则插入$current_day=time();$inrtq = "inrt into ur_signin (ur_id,last_sign_time,total_day)values($ur_id,'$current_day',1)"; //sql插入语句mysqli_query($link,"t names utf8");$inrtrs = mysqli_query($link,$inrtq); //获取数据集if(strpos($inrtrs,"lect") === fal){//出入数据成功upurscore('1');//exit(json_encode(array('status'=>"success",'code'=>"100")));}}mysqli_clo($link);//关闭连接?>

本文发布于:2023-04-07 05:10:50,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/e61020d72d1202b0056304a467814347.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php实现签到功能的方法详情.doc

本文 PDF 下载地址:php实现签到功能的方法详情.pdf

标签:数据   该用户   时间   积分
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图