简介这篇文章主要为大家详细介绍了使用PHP+layui实现每日签到及提醒功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下每日签到的功能,供大家参考,具体内容如下首次签到获得1个积分,第二次签到获得2个积分,第三次签到获得3个积分,以此类推但是签到必须每天连续积分才可以递增,如果有中断再次签到时获得积分仍然从1开始递增;效果图如下:数据库设计:---------------------------
这篇文章主要为大家详细介绍了使用PHP+layui实现每日签到及提醒功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
每日签到的功能,供大家参考,具体内容如下
首次签到获得1个积分,第二次签到获得2个积分,第三次签到获得3个积分,以此类推但是签到必须每天连续积分才可以递增,如果有中断再次签到时获得积分仍然从1开始递增;
效果图如下:
数据库设计:
------------------------------------------------------------主机:127.0.0.1--服务器版本:5.5.53-MySQLCommunityServer(GPL)--服务器操作系统:Win32--HeidiSQL版本:9.3.0.4984----------------------------------------------------------/*!40101SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT*/;/*!40101SETNAMESutf8mb4*/;/*!40014SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0*/;/*!40101SET@OLD_SQL_MODE=@@SQL_MODE,SQL_MODE='NO_AUTO_VALUE_ON_ZERO'*/;--导出sg的数据库结构CREATEDATA IFNOTEXISTS`sg`/*!40100DEFAULTCHARACTERSETutf8*/;USE`sg`;--导出表sg.user结构CREATETABLEIFNOTEXISTS`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`username`varchar(50)NOTNULL,`count`int(11)NOTNULL,`point`int(11)NOTNULL,`sign_time`datetimeNOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMAUTO_INCREMENT=4DEFAULTCHARSET=utf8;--正在导出表sg.user的数据:0rows/*!40000ALTERTABLE`user`DISABLEKEYS*/;INSERTIGNOREINTO`user`(`id`,`username`,`count`,`point`,`sign_time`)VALUES(1,'1',3,3,'2018-12-0315:19:26'),(2,'2',2,2,'2018-12-0315:03:38'),(3,'3',1,1,'2018-12-0315:56:38');/*!40000ALTERTABLE`user`ENABLEKEYS*/;/*!40101SETSQL_MODE=IFNULL(@OLD_SQL_MODE,'')*/;/*!40014SETFOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKSISNULL,1,@OLD_FOREIGN_KEY_CHECKS)*/;/*!40101SETCHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT*/;
引入jquery和layui
PS:注意需要先下载layui并使用layui.all.js
< src="https://cdn.bootcss.com/jquery/1.12.0/jquery.min.js"></ >< src="./layui/layui.all.js"charset="utf-8"></ >< rel="stylesheet"href="./layui/css/layui.css"media="all">
index.html前端
页面布局<怎么好看看自己需要了,我只是简单的写了一个>
<center><inputtype="text"name="username"><button>签到</button></br><spanid='span'></span><div><tableid="box"border="1"></table></div></center>
ajax:
$(function(){$('button').click(function(){varusername=$(':text').val();$.ajax({type:'post',url:'admin.php',data:{username:username},dataType:'json',success:function(res){if(res.success==1){ .alert(res.info,{icon:1, :"提示"});varstr='<tr><td>用户名</td><td>连续签到天数</td><td>总积分</td></tr>';str+='<tr><td>'+res.msg.username+'</td><td>'+res.msg.count+'</td><td>'+res.msg.point+'</td></tr>';$('#box').html(str);}}})});})
admin.php
<?phperror_reporting(0);header("content-type:text/html;charset=utf-8");date_default_timezone_set('PRC');$dsn='mysql:host=localhost;dbname=sg';$pdo=newPDO($dsn,'root','123456');$pdo->exec('setnamesutf8');$username=$_POST['username'];$sqlQuery="select*fromuserwhereusername='$username'";$row=$pdo->query($sqlQuery)->fetch(PDO::FETCH_ASSOC);if($row){$sign_time=$row['sign_time'];$sign_time=strtotime($sign_time);//echo$sign_time;$int=date('Y-m-d');//echo$int;$int=strtotime($int);$ints=$int+86400;$int_s=$int-86400;//当天已签到if($int<$sign_time&&$sign_time<$ints){$infor="今天您已经签过到了,请明天再来!";//echo'您已签到';}//昨天未签到,积分,天数在签到修改为1if($sign_time<$int_s){$count=1;$point=1;$sign_time=date('Y-m-dH:s:i');$sqlRow="updateusersetcount='$count',point='$point',sign_time='$sign_time'whereusername='$username'";$res=$pdo->exec($sqlRow);//echo'签到成功修改为1';}//请签到if($int_s<$sign_time&&$sign_time<$int){$count=$row['count']+1;$point=$row['point']+1;$sign_time=date('Y-m-dH:s:i');$sqlupdate="updateusersetcount='$count',point='$point',sign_time='$sign_time'whereusername='$username'";$res=$pdo->exec($sqlupdate);$infor="签到成功!";//echo'签到成功+1';}}else{$count=1;$point=1;$sign_time=date('Y-m-dH:s:i');$sqlAdd="insertintouservalues(null,'$username','$count','$point','$sign_time')";$res=$pdo->exec($sqlAdd);$infor="签到成功!请记得再来哦!";//echo'恭喜你签到成功----1';}//////////////////////响应$sqlEnd="select*fromuserwhereusername='$username'";$info=$pdo->query($sqlEnd)->fetch(PDO::FETCH_ASSOC);echojson_encode(array('success'=>1,'info'=>$infor,'msg'=>$info));die;?>
下载链接:网站源码/小程序源码/网站模板下载