VIP福利
主页 > 建站问题 > 程序开发 > 织梦CMS会员签到功能(非织梦插件)

织梦CMS会员签到功能(非织梦插件)

本文讲解了 织梦会员 签到增加积分/金币的功能,非插件,安全无毒,需手动修改文件。毕竟来路不明的插件也不敢乱用,废话不多说,开整... 一、在页面中引入ajax代码: 01 script la […]



本文讲解了织梦会员签到增加积分/金币的功能,非插件,安全无毒,需手动修改文件。毕竟来路不明的插件也不敢乱用,废话不多说,开整...

一、在页面中引入ajax代码:

01 <script language="javascript">
02   function ajax_sign() {
03     $.ajax({
04       type"POST",
05       url: "/member/ajax_sign.php",
06       success: function(data) {
07         alert(data);
08       }
09     });
10   }
11 </script>

二、在需要签到按钮的地方增加:

1 每天<span onclick="ajax_sign();" style="cursor:pointer;">[签到]</span>,赠送积分!

三、新增系统变量,用来设置签到所得积分的数量

变量名称填:cfg_sign_time
变量类型:数字
参数说明:会员签到积分
所属组:会员设置
变量值:10

点击保存变量即可(变量值10表示签到增加10积分),如下图所示

 

 

四、在会员(member)目录新建一个php文件,命名为ajax_sign.php,文件内容如下(注意:把代码中的【分隔符】替换为#@

01 <?php
02 if( $_SERVER['HTTP_REFERER'] == "" )//判断规则,禁止直接运行此php文件
03 {
04 header("HTTP/1.1 404 Not Found");
05 header("Status: 404 Not Found");
06 exit;
07 };
08  
09 require_once dirname(__FILE__) . '/config.php';
10 $uid = $cfg_ml->M_ID;//获取当前登录会员的ID
11 $time time();//获取当前的时间戳
12 $uid = isset($uid) ? (int) $uid : '';
13 //$cfg_sign_time = "10";//如果忽略了本文的第三个步骤,可以用这行代码直接指定签到+10积分
14 AjaxHead();
15 if (!empty($uid)) {
16     $sql = "SELECT * FROM 【分隔符】__member WHERE `mid`='{$uid}' LIMIT 1";
17     $dsql->Execute('me', $sql);
18     $arr = $dsql->GetArray('me');
19     if ($arr) {
20         $signdate = date('Y-m-d', $arr['signtime']);
21         if ($signdate < date('Y-m-d')) {
22             $dsql->ExecuteNoneQuery("UPDATE `【分隔符】__member` SET `scores`=`scores`+ $cfg_sign_time , `signtime`='" time() . "' WHERE `mid`='{$uid}' LIMIT 1");
23             echo '签到成功!增加 '.$cfg_sign_time.' 积分';
24         else {
25             echo '今天已经签到,休息一下,明天再来吧!';
26         }
27     else {
28         echo '错误!';
29     }
30 }

五、在数据库中新增一个字段,用来储存会员签到的时间,找到数据库中的dede_member表(dede_是你的表前缀,请自行替换)

新增字段:signtime
类型为:int
长度值:10

保存即可。

如果你的服务器没有安装数据库管理软件,也可以在织梦后台执行sql语句新增字段

系统 >> SQL命令行工具 >> 执行下面的sql语句

1 alter table dede_member add signtime int(10)

注意:dede_member是官方默认的数据表,如果你的程序更改了数据表前缀,那么就需要把 dede_ 进行替换

执行成功后如下


说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!