实现功能:会员每天登录时自动赠送积分,确保每位会员每天只能获得一次积分奖励。
为了实现这一功能,我们需要对系统进行一些修改。以下是详细的修改步骤:
1、进入管理系统中的会员字段设置页面,新增一个字段:
字段名:LastTime
字段标识:最后登陆时间
字段类型:大数值型(INT)
这个字段用于记录会员最后一次登录的时间戳,以便判断是否需要赠送积分。
2、打开文件 e/class/user.php,找到大约第 1019 行的代码段:
if($set1 && $set2)
在以下代码行之前:
$location = DoingReturnUrl($location, $_POST@['ecmsfrom']);
插入以下代码:
// 获取当前时间戳
$currentTime = time();
// 判断 LastTime 字段是否存在且不为空
if ($r['LastTime'] == '' || $r['LastTime'] == 0) {
// 如果 LastTime 为空或为 0,则直接赠送积分并更新 LastTime
$integral = 10; // 每天赠送的积分数值
$db->query("UPDATE `ecms_user` SET userfen=userfen+$integral, LastTime='$currentTime' WHERE userid='$userid'");
} else {
// 计算上次登录时间与当前时间的差值(单位:秒)
$timeDifference = $currentTime - $r['LastTime'];
// 如果时间差大于等于一天(86400 秒),则再次赠送积分并更新 LastTime
if ($timeDifference >= 86400) {
$integral = 10; // 每天赠送的积分数值
$db->query("UPDATE `ecms_user` SET userfen=userfen+$integral, LastTime='$currentTime' WHERE userid='$userid'");
}
}
以上代码的作用是:
- 获取当前时间戳。
- 检查会员的 LastTime 字段是否为空或为 0,如果是,则直接赠送积分,并将当前时间戳写入 LastTime 字段。
- 如果 LastTime 字段已有值,则计算当前时间与上次登录时间的时间差。
- 若时间差大于或等于一天(即 86400 秒),则再次赠送积分,并更新 LastTime 字段为当前时间戳。
通过上述修改,可以确保每位会员每天登录时只能获得一次积分奖励,从而提升用户的活跃度和参与感。
注意:在实际操作中,请根据您的系统环境调整代码中的表名、字段名以及积分数值等参数。
希望这篇教程对您有所帮助!如果您有任何疑问,欢迎随时提问。
空格 示例:这里有一个 空格 标签 的 示例 。