zoukankan      html  css  js  c++  java
  • 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="#">        
                    <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>
  • 相关阅读:
    【面积并】 Atlantis
    【动态前k大 贪心】 Gone Fishing
    【复杂枚举】 library
    【双端队列bfs 网格图建图】拯救大兵瑞恩
    【奇偶传递关系 边带权】 奇偶游戏
    【权值并查集】 supermarket
    CF w4d3 A. Pythagorean Theorem II
    CF w4d2 C. Purification
    CF w4d2 B. Road Construction
    CF w4d2 A. Cakeminator
  • 原文地址:https://www.cnblogs.com/phpfensi/p/4601834.html
Copyright © 2011-2022 走看看