在网站建设中,为会员系统添加签到功能是一种提升用户活跃度的有效方式。本文将详细介绍如何在Dedecms(织梦)系统中实现会员签到增加积分/金币的功能。此方法无需使用插件,所有操作均通过手动修改文件完成,确保安全无毒。
一、首先,在页面中引入Ajax代码以支持签到功能:
二、接着,在需要显示签到按钮的位置添加以下代码:
每天[签到],赠送积分!
三、新增系统变量,用于设置签到所得积分的数量:
变量名称:cfg_sign_time
变量类型:数字
参数说明:会员签到积分
所属组:会员设置
变量值:10
点击保存变量即可(变量值10表示签到增加10积分)。这一步完成后,您可以在后台管理界面找到并配置该变量。
四、在会员(member)目录下新建一个名为ajax_sign.php的PHP文件,其内容如下(注意:将代码中的【分隔符】替换为#@):
M_ID;//获取当前登录会员的ID
$time = time();//获取当前的时间戳
$uid = isset($uid) ? (int) $uid : '';
//$cfg_sign_time = "10";//如果忽略了本文的第三个步骤,可以用这行代码直接指定签到+10积分
AjaxHead();
if (!empty($uid)) {
$sql = "SELECT * FROM 【分隔符】__member WHERE `mid`='{$uid}' LIMIT 1";
$dsql->Execute('me', $sql);
$arr = $dsql->GetArray('me');
if ($arr) {
$signdate = date('Y-m-d', $arr['signtime']);
if ($signdate < date('Y-m-d')) {
$dsql->ExecuteNoneQuery("UPDATE `【分隔符】__member` SET `scores`=`scores`+ $cfg_sign_time , `signtime`='" . time() . "' WHERE `mid`='$uid' LIMIT 1");
echo '签到成功!增加 '.$cfg_sign_time.' 积分';
} else {
echo '今天已经签到,休息一下,明天再来吧!';
}
} else {
echo '错误!';
}
}
五、最后,我们需要在数据库中新增一个字段,用于储存会员签到的时间。具体来说,是在dede_member表(dede_是默认表前缀,请根据实际情况替换)中新增字段:
新增字段:signtime
类型为:int
长度值:10
如果您无法直接访问数据库,也可以通过DedeCMS后台执行SQL语句来新增字段:
alter table dede_member add signtime int(10)
注意:请根据您的实际数据库表前缀调整上述SQL语句中的dede_部分。
以上步骤完成后,您的Dedecms网站就成功实现了会员签到增加积分的功能。这种方法不仅简单易行,而且完全避免了使用第三方插件可能带来的安全隐患。