织梦会员签到增加积分/金币的功能,非插件,安全无毒,需手动修改文件。
毕竟来路不明的插件也不敢乱用
  • 一、在页面中引入ajax代码:
<script language="javascript">
 
  function ajax_sign() {
 
    $.ajax({
 
      type: "POST",
 
      url: "/member/ajax_sign.php",
 
      success: function(data) {
 
        alert(data);
 
      }
 
    });
 
  }
 
</script>
  • 二、在需要签到按钮的地方增加:
每天<span onclick="ajax_sign();" style="cursor:pointer;">[签到]</span>,赠送积分!
  • 三、新增系统变量,用来设置签到所得积分的数量
  1. 变量名称填:cfg_sign_time
  2. 变量类型:数字
  3. 参数说明:会员签到积分
  4. 所属组:会员设置
  5. 变量值:50
点击保存变量即可(变量值50表示签到增加10积分),如下图
  • 四、在会员(member)目录新建一个php文件,命名为ajax_sign.php,文件内容如下
(注意:把代码中的【分隔符】替换为#@,把全角字符‘替换成半角字符'因为我们的编辑器会过滤掉,只能这样写了)
<?php
 
if( $_SERVER['HTTP_REFERER'] == "" )//判断规则,禁止直接运行此php文件
 
{
 
header("HTTP/1.1 404 Not Found");
 
header("Status: 404 Not Found");
 
exit;
 
};
 
 
 
require_once dirname(__FILE__) . '/config.php';
 
$uid = $cfg_ml->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
  1. 类型为:int
  2. 长度值:10
  3. 保存即可。
也可以在织梦后台执行sql语句新增字段
系统 >> SQL命令行工具 >> 执行下面的sql语句
alter table dede_member add signtime int(10)
注意:dede_member是官方默认的数据表,如果你的程序更改了数据表前缀,那么就需要把 dede_ 进行替换
如图