重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在数据库添加一个积分表和用户ID绑定,用户点击一次就把这个ID的积分+1,限制每天只操作一次,就是你可以做个记录流水表,记录时间,用户ID,就是用户今天签到一次就向这张表中加一条数据,用来避免重复签到
创新互联主营齐河网站建设的网络公司,主营网站建设方案,APP应用开发,齐河h5重庆小程序开发搭建,齐河网站营销推广欢迎齐河等地区企业咨询
首先对需求分析一下:
根据当前时间判断,是否可以签到。(对吧看)
所以你需要有一个变量用来储存他上一次签到的时间,具体到某一天。在签到的时候取这个字段然后判断就行了。
应该要用到的是strtotime() 和date() 这两个函数。
(有点晚了提供下思路睡了,楼主可以根据具体的数据库结构适当修改)
以淘宝网领取淘金币的签到系统为例:
目标:
第一天签到增加5个积分;第二天连续签到则增加8个积分;第三天连续签到,增加11个积分,第四天连续签到,增加15个积分;第五天连续签到,增加19个积分;第六天连续签到,增加24个积分;第七天连续签到,增加29个积分;第八天以后的连续签到,都增加29个积分。连续签到断开,则积分从第一天开始计算。
思路:
这个比较简单,思路是这样的:
在用户表里添加一个连续登录的字段,如果每天连续登录自增1,如果超过24小时的话就直接归0.
再增加一个最后登录的时间,格式是时间戳的。
首先判断最后登录的时间和现在的时间的时间差值是多少,函数如下:
?php
function checkTime() {
if (time() - 最后登录时间 24*60*60 ) { // 判断时间是否大于24小时
// 让字段归0
}
}
?
这个样子就可以了。
至于加分就简单了。
如果字段值为:
1就加5,
2就加8,
3就加11,
4就加15,
5就加19,
6就加24,
大于7就加29
什么是thinkphp啊?
要是php代码的话
就假设建个数据库,主键是用户名,一项是经验值,一项是时间
点击签到,用get传给一个php页面一个值,php获取之后,用select where 查找到cookie中的用户名,找到对应的经验值,先获取一次付给变量,再加上10用update语句更改数据库内容,并更改时间为最新次签到时间
然后再看显示签到那页,可以先用个php查找对应cookie的时间项 ,并与当前时间对比(这个看你咋设置了,是按24点过了就能在签到还是过了24小时在下一次签到),显示签到或已签到(已签到不赋予功能)
基本思路就这样了,但不是最优化,比如那个显示签到已签到,还要遍历一次数据库,如果数据库数据量很大,遍历很浪费时间,也可以放到另一个php里去实现查询是否可签
希望能有帮助
签到功能主要是需要获取上次签到时间,然后进行比对,如果比较之后在零点之后,且大于24小时,就认为连续签到失败。
关键点:每次需要记录签到时间,这样以后无论是根据记录,还是相应算法都可以统计相关的签到记录。
签到功能核心就是时间的比较,只要比对好时间,然后封装签到方法,就可以轻松记录签到情况。