为何织梦会员发布信息需先认证?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 织梦建站 正文
  1. 后台设置:在织梦后台开启会员认证功能,并设置认证字段。
  2. 二次开发:修改会员发布信息的PHP文件,在发布前检查该会员是否已通过认证。

下面我将为您提供详细的图文步骤和核心代码修改方法。


第一步:后台开启并设置会员认证

这是基础,我们需要先让织梦系统支持会员认证功能。

  1. 登录织梦后台:使用管理员账号登录您的织梦网站后台。

  2. 进入会员模型管理

    • 在左侧菜单栏找到 【会员】 -> 【会员模型管理】
    • 点击进入后,您会看到默认的“个人”和“企业”模型,点击您想要开启认证的模型(通常是“个人”)后面的 【字段管理】
  3. 添加认证字段

    • 在字段管理页面,点击右上角的 【添加新字段】
    • 字段名:填写 ms (代表“实名”的首字母,也可以自定义,如 is_realname)。
    • :填写“是否实名认证”。
    • 字段类型:选择 【radio 单选框】
    • 字段值:在“选项”中填写两行:
      • 0|未认证
      • 1|已认证
    • 默认值:选择 0|未认证
    • 显示在会员投稿表单务必勾选此项,这样会员在个人中心才能看到并修改这个状态(虽然他们不能自己改成“已认证”,但需要显示出来)。
    • 是否公开:选择“是”,这样可以在会员列表等地方显示出来。
    • 其他选项可以根据需要设置,然后点击 【保存】
  4. 更新缓存

    • 字段添加完成后,系统会提示您更新缓存,请务必到后台的 【系统】 -> 【系统基本参数】 -> 【核心设置】 中,点击右上角的 【更新缓存】 按钮。

至此,后台的准备工作已经完成,系统已经有了一个用来标记会员是否认证的字段。


第二步:二次开发 - 修改发布页面

这是最关键的一步,我们要让会员在发布信息时,系统会先检查他的认证状态。

会员在“会员中心”发布信息(如文章、商品等)

这是最常见的场景,我们需要修改发布信息的PHP文件。

  1. 找到对应的发布文件

    • 发布文章:/member/contents_add.php
    • 发布商品(如果使用商城模块):/member/shop_add.php/member/buyaction.php 等。
    • 请根据您的实际需求修改对应的文件。 我们以最常见的 /member/contents_add.php 为例。
  2. 修改文件

    • 用代码编辑器(如VS Code, Sublime Text, Dreamweaver)打开 contents_add.php 文件。
    • 在文件中找到 if($dopost=='save') 这段代码,这是处理表单提交保存的核心逻辑。
    • 在这段代码的最开始,在执行任何数据库操作之前,加入以下检查代码:
    // 在 if($dopost=='save') 内部,最开始的位置添加
    // 检查会员是否已认证
    $row = $dsql->GetOne("SELECT ms FROM `dede_member` WHERE mid='".$uid."'");
    if(empty($row['ms']) || $row['ms'] != 1) {
        ShowMsg('您尚未通过实名认证,无法发布信息,请先联系管理员进行认证!', '-1');
        exit();
    }

    代码解释

    • $dsql->GetOne(...): 执行一条SQL查询,从 dede_member 表中查询当前登录会员($uid)的 ms 字段值。
    • if(empty($row['ms']) || $row['ms'] != 1): 判断查询结果。ms 字段为空(未设置)或者不等于1(未认证),则执行下面的提示。
    • ShowMsg(...): 这是织梦自带的提示函数,会弹出一个提示框并跳转。
      • 第一个参数是提示文字。
      • 第二个参数 '-1' 表示返回上一页。
    • exit();: 终止脚本执行,后续的发布代码就不会运行了。
  3. 保存文件

    • 将修改后的 contents_add.php 文件上传到您的网站服务器上,覆盖原文件。

效果: 任何一个未认证的会员尝试在会员中心发布文章时,都会被阻止,并看到“您尚未通过实名认证,无法发布信息”的提示。

在前台直接调用发布接口(如投稿表单)

如果您网站首页或其他页面有一个直接投稿的表单,它可能直接指向了 post.php,这种情况下,您需要修改 post.php

  1. 找到文件/post.php

  2. 修改文件

    • 同样,用代码编辑器打开 post.php
    • 找到处理发布逻辑的核心代码段(通常是检查 dopost 值的地方)。
    • 在执行保存操作之前,加入与上面相同的检查代码:
    // 在处理保存逻辑的代码块前添加
    if($dopost == 'save') {
        // 检查会员是否已认证
        // 如果游客投稿,则必须登录,所以这里主要检查已登录会员
        if($cfg_ml->IsLogin()) {
            $row = $dsql->GetOne("SELECT ms FROM `dede_member` WHERE mid='".$cfg_ml->M_ID."'");
            if(empty($row['ms']) || $row['ms'] != 1) {
                ShowMsg('您尚未通过实名认证,无法发布信息,请先联系管理员进行认证!', '-1');
                exit();
            }
        }
        // ... 原有的保存代码 ...
    }

第三步:如何让会员通过认证?

您添加的检查逻辑会阻止未认证会员发布,那么会员如何才能被认证呢?有几种方式:

  1. 管理员手动认证(最常用)

    • 会员需要先提交一些资料(比如身份证号、手持身份证照片等)给您,您可以在网站上留一个联系方式。
    • 您登录织梦后台,进入 【会员】 -> 【会员管理】
    • 找到需要认证的会员,点击其用户名进入编辑页面。
    • 找到您之前添加的“是否实名认证”字段,将其值从“未认证”修改为“已认证”,然后点击“确定”保存。
  2. 开发会员自助认证功能(较复杂)

    • 这需要更高级的二次开发,您可以创建一个新的自定义模型,命名为“实名认证申请”。
    • 会员填写认证申请表单(上传证件等)。
    • 管理员在后台审核这个申请,审核通过后,系统自动将会员在 dede_member 表中的 ms 字段值更新为 1

要实现“织梦会员发布信息先认证”的功能,核心流程如下:

  1. 后台:在会员模型中添加一个用于标记认证状态的 单选字段(如 ms),并确保它显示在会员表单中。
  2. 前台:找到所有会员可以发布信息的PHP文件(如 contents_add.php, shop_add.php, post.php 等)。
  3. 修改:在这些文件的数据保存逻辑之前,加入一段代码,查询当前登录会员的认证状态,如果未认证,则使用 ShowMsg() 提示并终止操作。
  4. 管理:通过后台手动或通过开发的功能为符合条件的会员授予“已认证”状态。

通过以上步骤,您就可以成功地实现这个功能,大大提升您网站内容的质量和可信度。

-- 展开阅读全文 --
头像
织梦栏目列表如何不显示文章?
« 上一篇 前天
C语言堆排序如何高效实现与优化?
下一篇 » 前天

相关文章

取消
微信二维码
支付宝二维码

目录[+]