• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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>nbsp;?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程序设计有所帮助。

    您可能感兴趣的文章:
    • thinkPHP实现签到功能的方法
    • php+mysql+jquery实现日历签到功能
    • php实现每日签到功能
    • php实现签到功能的方法实例分析
    • 定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
    • PHP使用redis位图bitMap 实现签到功能
    • Php连接及读取和写入mysql数据库的常用代码
    • php中关于mysqli和mysql区别的一些知识点分析
    • PHP读取MySQL数据代码
    • PHP+MYSQL实现用户的增删改查
    • php基础之连接mysql数据库和查询数据
    上一篇:Laravel框架Eloquent ORM修改数据操作示例
    下一篇:PHP实现发送微博消息功能完整示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP连续签到功能实现方法详解 PHP,连续,签到,功能,实现,