网络建站知识发布于分享网站

当前位置:首页>>新闻中心>>CMS教程>>dedecms教程

Dedecms会员签到功能实现(无需插件)

时间:2025-03-31 21:35:06    来源:    人气:0

在网站建设中,为会员系统添加签到功能是一种提升用户活跃度的有效方式。本文将详细介绍如何在Dedecms(织梦)系统中实现会员签到增加积分/金币的功能。此方法无需使用插件,所有操作均通过手动修改文件完成,确保安全无毒。

一、首先,在页面中引入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>,赠送积分!

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

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

点击保存变量即可(变量值10表示签到增加10积分)。这一步完成后,您可以在后台管理界面找到并配置该变量。

四、在会员(member)目录下新建一个名为ajax_sign.php的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
类型为:int
长度值:10

如果您无法直接访问数据库,也可以通过DedeCMS后台执行SQL语句来新增字段:


alter table dede_member add signtime int(10)
    

注意:请根据您的实际数据库表前缀调整上述SQL语句中的dede_部分。

以上步骤完成后,您的Dedecms网站就成功实现了会员签到增加积分的功能。这种方法不仅简单易行,而且完全避免了使用第三方插件可能带来的安全隐患。

相关文章

  • Dedecms 删除文档时同时清除文章中图片的方法

    Dedecms 删除文档时同时清除文章中图片的方法

    在网站建设与维护的过程中,优化代码结构和功能是提升网站性能的重要步骤。本文将介绍如何通过自定义函数实现文章删除时自动清理相关资源的功能,从而提高系统的整洁性和存储效率。以下是具体的操作步骤及代码实现。首先, 在 `/include` 目录下创建一个名为 `extend.func.php` 的文件...
    2025-03-31
  • Dedecms上传图片提示302错误ERROR的解决方法

    Dedecms上传图片提示302错误ERROR的解决方法

    在进行图片上传操作时,用户可能会遇到302错误以及带有ERROR提示的图片上传失败问题。这些问题可能由多种原因引发,因此本文将对这些情况进行整理,以帮助大家更有效地定位并解决问题。 第一种情况:图片文件本身损坏。 这种情况会导致系统返回ERROR错误提示,不过发生概率较低。如果怀疑是图片损坏导致的...
    2025-03-31
  • DEDECMS模板使用教程

    DEDECMS模板使用教程

    如果您正在寻找一种高效的方法来使用Dedecms模板搭建网站或论坛,那么本文将为您提供详尽的指导。从模板解压到最终完成配置,每一步都将清晰呈现,帮助您快速掌握整个流程。 第一步:解压Dedecms模板 将下载的Dedecms模板文件解压出来,确保所有文件完整无误。如下图所示: 第二步:获取D...
    2025-03-31
  • Dedecms Dede 附加表自定义字段与主表文章关联方法

    Dedecms Dede 附加表自定义字段与主表文章关联方法

    在使用DedeCMS开发装修网站时,设计师和设计作品之间的关联是一个重要的功能需求。通常情况下,文章(作品)的内容部分存储在主表dede_addonarticle中,而自定义字段则存储在附加表dede_archives中。为了实现这一功能,可以采用以下两种方法。 ① 根据发布人调用相关文章; ...
    2025-03-31

公众号