在网站开发中,优化用户体验是提升用户满意度的重要环节。本文将介绍如何通过修改 DedeCMS 的注册功能,实现系统自动同步用户名和用户笔名,从而简化用户注册流程。

在 DedeCMS 中,默认情况下用户注册时需要分别输入用户名($userid)和用户笔名($uname)。为了减少用户输入步骤,我们可以让系统自动将用户名同步为用户笔名。

首先,我们需要找到负责用户注册的 PHP 文件 member/reg_new.php。在这个文件中,用户名和用户笔名是两个独立的字段。我们的目标是让用户注册时填写的用户名直接赋值给用户笔名。

打开 reg_new.php 文件,找到第 83 行:

// 用户笔名重复检测
if($cfg_mb_wnameone=='N') {
    $row = $dsql->GetOne("SELECT * FROM `dede_member` WHERE uname LIKE '$uname' ");
    if(is_array($row)) {
        ShowMsg('用户笔名或公司名称不能重复!', '-1');
        exit();
    }
}

在“// 用户笔名重复检测”上一行添加以下代码:
$uname = $userid;
这一步的作用是将用户输入的用户名直接赋值给用户笔名。

接下来,我们需要对前台页面进行相应的调整:

1. 修改前台 HTML 页面
将用户笔名的 input 框隐藏。可以通过设置 type="hidden" 来实现。
例如:
<input type="hidden" id="uname" name="uname" value="">

2. 修改 JavaScript 文件
找到 member/templets/js/reg_new.js 文件,并修改其中的 AJAX 部分代码。
原始代码如下:

// AJAX changChickValue
$("#txtUsername").change( function() {
    $.ajax({
        type: reMethod,
        url: "index_do.php",
        data: "dopost=checkuser&fmdo=user&cktype=1&uid="+$("#txtUsername").val(),
        dataType: 'html',
        success: function(result){
            $("#_userid").html(result);
        }
    });
});

修改后的代码如下:

// AJAX changChickValue
$("#txtUsername").change( function() {
    $.ajax({
        type: reMethod,
        url: "index_do.php",
        data: "dopost=checkuser&fmdo=user&cktype=1&uid="+$("#txtUsername").val(),
        dataType: 'html',
        success: function(result){
            $("#_userid").html(result);
            $("#uname").val($("#txtUsername").val());
        }
    });
});

以上修改完成后,用户在注册时无需再手动输入笔名,系统会自动将用户名同步为用户笔名。

通过这样的改动,不仅减少了用户的操作步骤,还提高了注册流程的便捷性,有助于提升用户体验。如果您正在使用 DedeCMS 构建网站,不妨尝试这一优化方法。

希望这篇文章对您有所帮助!如有任何问题,请随时联系技术支持团队。