128网站目录目前已创建 203 个网站目录,收录 15861 个站点! 注册 登录 升级VIP 提交网站
首页 > 新闻中心 > 建站

PHP+MYSQL+AJAX实现每日签到功能

//这里是你需要高亮的代码
一、web前端及ajax部分
文件index.html
PHP+AJAX+MYSQL实现每日签到签到连续签到天
二、PHP后端处理部分 
sign.php文件
 query($getDay); $days =$day -> fetch_array(MYSQLI_ASSOC); echo $days['signdays'];

 } 

 

if ($_GET['do']=='sign'){

 

   $db=new mysqli('localhost','root','123456','sign');

 

   $uid=2; 

 

  $time=time(); 

 

  //check sign today 

 

  $todayBegin=strtotime(date('Y-m-d')." 00:00:00"); 

 

  $todayEnd= strtotime(date('Y-m-d')." 23:59:59"); 

 

  $checkSignSql="SELECT * FROM `sign` WHERE `uid` = {$uid} AND `dateline` < {$todayEnd} AND `dateline` > {$todayBegin} "; 

 

  $checkSignToday= $db -> query($checkSignSql); 

 

  $checkSign = $checkSignToday -> fetch_array(MYSQLI_ASSOC);

 

   if (empty($checkSign)){ 

 

    $sql="SELECT * FROM `sign` WHERE `uid` = {$uid} "; 

 

    $return = $db -> query($sql) -> fetch_array(MYSQL_ASSOC);

 

    //check sign table exist uid record 

 

    if (empty($return)){//no

 

       $insertSql="INSERT INTO `sign` (`uid`,`dateline`) VALUES ('{$uid}','{$time}') "; 

 

       $insert = $db -> query($insertSql); 

 

       $updateSignSql="UPDATE `user` SET `signdays` =1 WHERE `id` = {$uid} ";

 

       $db -> query($updateSignSql); echo 1;

     }else{       // check is continuous ? reset with login set signdays as 0 !!!!!  

 

      $yesterdayBegin= strtotime(date("Y-m-d",strtotime("-1 day"))." 00:00:00"); 

 

      $yesterdayEnd= strtotime(date("Y-m-d",strtotime("-1 day"))." 23:59:59"); 

 

      $checkContinuSql="SELECT * FROM `sign` WHERE `uid` = {$uid} AND `dateline` < {$yesterdayEnd} AND `dateline` > {$yesterdayBegin}"; $checkContinuYesterday = $db ->query($checkContinuSql) -> fetch_array(MYSQL_ASSOC);          

 

      if (!empty($checkContinuYesterday)){            

 

        $replaceSql="REPLACE INTO `sign` (`uid`,`dateline`) VALUES ('{$uid}','{$time}') ";            

 

        $replace=$db -> query($replaceSql); 

 

        $updateSignSql="UPDATE `user` SET `signdays` = `signdays` + 1 WHERE `id` = {$uid} ";

        $db -> query($updateSignSql); echo 1; 

 

      }else{

          

    }

  }

}else{       

 

  echo 2;// allready sign.     

 

} 

 

?>
三、Mysql数据库部分



CREATE TABLE IF NOT EXISTS `sign` (

 `uid` int(11) NOT NULL,

 `dateline` varchar(10) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`uid`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 

INSERT INTO `sign` (`uid`, `dateline`) VALUES (1, '1389072071'), (2, '1389072735'); 

 

CREATE TABLE IF NOT EXISTS `user` (

 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'USERID',

 `username` varchar(35) COLLATE utf8_bin NOT NULL COMMENT 'username',

 `signdays` int(11) NOT NULL COMMENT '签到天数', PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ;

 

INSERT INTO `user` (`id`, `username`, `signdays`) VALUES (1, 'ggbound', 4), (2, 'other', 1); 
    上一篇:已经是第一篇 下一篇:PHP 如何 获取客户端ip地址