Ⅰ 大牛,php 每日签到功能限制某些用户不允许签到该如何实现
首先对需求分析一下:
根据当前时间判断,是否可以签到。(对吧看)
所以你需要有一个变量用来储存他上一次签到的时间,具体到某一天。在签到的时候取这个字段然后判断就行了。
应该要用到的是strtotime() 和date() 这两个函数。
(有点晚了提供下思路睡了,楼主可以根据具体的数据库结构适当修改)
Ⅱ 关于php自动签到。 我想问的是写完代码之后如何实现它自己一直运行php放在后台不是要有人发请求
使用
ignore_user_abort();
set_time_limit(0);
可以实现你的目的,但是,一般都不建议这样做
其实,如果你仅仅是想实现签到的功能,完全可以通过"补签"的方式来实现
只有在发出请求的时候才签到,然后同时将过去的进行补签就行了
Ⅲ PHP求连续签到天数
设计表结构时多加一个字段来存放连续签到天数,每次签到时更新这个字段要简单的多
否则你需要 每个人 都循环判断前一天是否签到的方法来解决
参考代码
1--循环法
declare@dayint=1,--
2@userIdint=1,--用户id
3@countint=0,--连续签到多少天
4@isSinginTodayint--今天是否签到
5
6whileexists(select*from#SignInLog
7whereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=@day)
8begin
9set@count=@count+1--【循环方法】
10set@day=@day+1--
11end
12
13select@isSinginToday=COUNT(*)from#SignInLogwhereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=0--今天是否登录
14
15
16select@isSinginToday,--当天是否签到
17@count+@isSinginToday--连续签到n天
如果数据库支持row_number(), mysql 不支持此函数...
可以用
declare@nowdatetime=getdate(),
@countint,
@useridint=1,
@isSinginTodayint
select@count=count(*)from(
selectdatediff(day,CreateTime,@now)aa,--签到时间对比今天的差值
row_number()over(orderbycreatetimedesc)bb--排序字段
from#SignInLog
whereUserId=@userIdanddatediff(day,CreateTime,@now)>0--条件排除今天的签到记录
)Twhereaa=bbselect@isSinginToday=COUNT(*)from#SignInLogwhereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=0--今天是否登录
select@isSinginToday,--当天是否签到
@count+@isSinginToday--连续签到n天
Ⅳ 请问如何实现下述功能,php源码,可以设定给一个用户一个积分值(比如10000),并每次送10分
理解成签到送10个积分不就好了,按你们考虑的方法一次10分,10000分要送3年,策略这种东西会3年不变?所以根本没必要考虑。
此外,积分、虚拟资产等这类东西的变更都是要有记录的,所以每次送分是需要写对应的log的,比如
id:13345, uid: 3342, time: 2016-02-18 14:02:05, type: 赠送, value: 10
日后如果需要调整逻辑,只要统计一下用户的type=赠送的sum(value)就行了。
Ⅳ php签到,点击签到按钮,数据库里面的积分加1,
在数据库添加一个积分表和用户ID绑定,用户点击一次就把这个ID的积分+1,限制每天只操作一次,就是你可以做个记录流水表,记录时间,用户ID,就是用户今天签到一次就向这张表中加一条数据,用来避免重复签到
Ⅵ 怎么用php来获取时间 周次 节次来做签到功能
签到功能主要是需要获取上次签到时间,然后进行比对,如果比较之后在零点之后,且大于24小时,就认为连续签到失败。
关键点:每次需要记录签到时间,这样以后无论是根据记录,还是相应算法都可以统计相关的签到记录。
签到功能核心就是时间的比较,只要比对好时间,然后封装签到方法,就可以轻松记录签到情况。
Ⅶ php如何写出上班签到
<html>
<head>
<title>上班签到</title>
<meta charset='UTF-8'>
</head>
<body>
<form action='' method='post'>
签到人姓名<input type='text' name='Name'><input type='submit' name='submit' value='签到'><br>
</Form>
<?php
if(isset($_POST['submit')){
$name = $_POST['Name'];
$a = fopen("./签到文件.txt","a");
$b =file("./签到文件.txt");
foreach($b as $line){
if($line == $name."已经签到"){
echo "你已经签到过了";
fclose($a);
return;
break;
}
}
fwrite($a,$name."已经签到");
fclose($a);
?>
</body>
</html>
一天签到结束后需要删除签到文件
Ⅷ 请问下那个PHP每日签到时怎么实现的!
给你个思路吧,数据库设置一个字段为最后登录时间,判断时间是否为前一天,如果是就要求签到。 再设置个签到字段,判断当前是否签到,以防登录了没签到却不要求签到了。
Ⅸ php 签到时间判断,该怎么写出源代码,比如现在签到了,过了晚上24点就可以再签到一次
首先对需求分析一下:
根据当前时间判断,是否可以签到。(对吧?)
所以你需要有一个变量用来储存他上一次签到的时间,具体到某一天。在签到的时候取这个字段然后判断就行了。
应该要用到的是strtotime() 和date() 这两个函数。
(有点晚了提供下思路睡了,楼主可以根据具体的数据库结构适当修改)
Ⅹ PHP论坛每日签到拜托了各位 谢谢
检查一下你的调用是否无误