核心文件位置
织梦的会员模板文件都存放在 /templets/ 目录下,默认情况下,会员相关的模板在 /templets/plus/ 目录中。

- 主注册模板文件:
/templets/plus/reg_new.htm这是会员注册页面的主模板文件,你可以直接编辑这个HTML文件来修改页面的布局、样式和显示内容。
- 注册成功提示模板:
/templets/plus/succes.htm用户注册成功后,会跳转到这个页面显示成功信息。
- 注册失败提示模板:
/templets/plus/erradd.htm如果注册过程中出现错误(如用户名已存在),会显示这个页面。
- 会员中心主页模板:
/templets/default/member/(或你自定义的会员中心模板目录)注册成功后,用户会被引导到会员中心,这个目录下的文件控制会员中心各页面的显示。
(图片来源网络,侵删)
默认 reg_new.htm 模板结构解析
打开 /templets/plus/reg_new.htm 文件,你会看到类似下面的结构:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:global.cfg_webname/} - 会员注册</title>
<link href="{dede:global.cfg_cmsurl/}/templets/style/dedecms.css" rel="stylesheet" type="text/css" />
<script language="javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
<!-- 引入jQuery或其他JS库,用于实现如用户名查重等交互功能 -->
</head>
<body class="bg-f4">
<div class="container">
<div class="reg-box">
<div class="reg-title">
<h2>会员注册</h2>
<span>已有账号?<a href="{dede:global.cfg_memberurl/}/login.php">立即登录</a></span>
</div>
<!-- 注册表单开始 -->
<form action="{dede:global.cfg_cmspath/}/member/index_do.php?fmdo=user&dopost=regnew" method="post" name="form1" id="form1">
<input type="hidden" name="dopost" value="regnew" />
<input type="hidden" name="step" value="1" />
<input type="hidden" name="jointime" value="<?php echo $jointime; ?>" />
<input type="hidden" name="mktime" value="<?php echo $mktime; ?>" />
<!-- 用户名输入框 -->
<div class="form-group">
<label for="userid">用户名:</label>
<input type="text" name="userid" id="userid" class="input-text" size="30" />
<span id="usertip"></span> <!-- 用于显示用户名验证提示 -->
</div>
<!-- 密码输入框 -->
<div class="form-group">
<label for="pwd">密码:</label>
<input type="password" name="pwd" id="pwd" class="input-text" size="30" />
</div>
<!-- 确认密码输入框 -->
<div class="form-group">
<label for="pwdok">确认密码:</label>
<input type="password" name="pwdok" id="pwdok" class="input-text" size="30" />
</div>
<!-- Email输入框 -->
<div class="form-group">
<label for="email">电子邮箱:</label>
<input type="text" name="email" id="email" class="input-text" size="30" />
</div>
<!-- 验证码 -->
<div class="form-group">
<label for="vdcode">验证码:</label>
<input type="text" name="vdcode" id="vdcode" class="input-text" size="10" />
<img src="{dede:global.cfg_cmspath/}/include/vdimgck.php" id="validateimg" style="cursor:pointer" onclick="this.src='{dede:global.cfg_cmspath/}/include/vdimgck.php?'+Math.random();" title="看不清?点击换一张" />
</div>
<!-- 注册按钮 -->
<div class="form-group">
<button type="submit" class="btn-reg">立即注册</button>
</div>
</form>
<!-- 注册表单结束 -->
</div>
</div>
</body>
</html>
关键点说明:
- 表单提交地址:
<form action="...">中的地址是固定的,指向处理注册的PHP脚本,不要随意修改。 - 隐藏字段:
dopost,step,jointime,mktime这些隐藏字段是后台处理注册所必需的,必须保留。 - 输入字段:
name属性值(如userid,pwd,email)是固定的,后台PHP通过这些name值来获取数据,可以修改id和显示的label文本。 - 验证码:验证码图片的
src和点击刷新的onclick事件也是固定的,用于保证安全性。
如何自定义注册模板
修改样式和布局(最常见的需求)
你可以像编辑任何HTML文件一样编辑 reg_new.htm。
- 更换CSS:默认引用了
/templets/style/dedecms.css,你可以修改这个文件,或者删除引用,在<head>中引入你自己的CSS文件(如<link href="/css/my-style.css" rel="stylesheet">)。 - 调整HTML结构:你可以重新排列
<div class="form-group">的顺序,添加新的<div>来包裹不同的部分,实现更复杂的布局。 - 美化表单:使用CSS来修改输入框、按钮的样式,使其更符合你的网站设计。
示例:添加一个手机号注册字段
<!-- 在Email输入框后面添加 -->
<div class="form-group">
<label for="phone">手机号码:</label>
<input type="text" name="m_tel" id="phone" class="input-text" size="30" placeholder="请输入您的手机号" />
</div>
注意:这里我们使用了 name="m_tel",织梦默认的用户表里有一个 m_tel 字段用于存储手机号,如果你的表单中包含这个字段,它会被自动保存到数据库中。
增加自定义字段
这是最强大的功能,但需要修改后台配置。
步骤:
- 进入后台:登录织梦后台 -> 会员 -> 会员模型管理 -> 字段管理。
- 选择模型:默认是“个人会员模型”,点击进入。
- 添加字段:
- 点击 [增加新字段]。
- 字段名称:填写英文名,如
user_address。 - :填写显示给用户看的名称,如“联系地址”。
- 字段类型:选择
文本框、多行文本、单选按钮等。 - 是否显示:选择“是”。
- 前台表单调用:选择“是”。
- 其他选项根据需要填写。
- 点击 [保存]。
- 修改注册模板:
- 打开
/templets/plus/reg_new.htm。 - 在合适的位置,使用织梦的标签
{dede:field name='字段名称'/}来调用这个新字段。
- 打开
示例:调用上面创建的“联系地址”字段
<div class="form-group">
<label for="address">联系地址:</label>
<input type="text" name="user_address" id="address" class="input-text" size="30" placeholder="请输入您的联系地址" />
</div>
重要提示:
- 表单中
input的name属性值必须和你创建的字段名称完全一致。 - 如果你使用的是织梦较新的版本(如V5.7+),你可能还需要在 会员模型管理 -> 增加一个会员模型 中,确保你的新字段被添加到了注册表单中。
实现AJAX实时验证(如用户名查重)
默认模板中已经包含了 dedeajax2.js 和一个用于显示提示的 <span id="usertip"></span>,我们需要编写一小段JS代码来实现验证。
- 在
<head>中引入jQuery (如果没引入的话):<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
- 在
<body>底部,</form>标签后面添加JS代码:<script type="text/javascript"> $(function(){ // 当用户名输入框失去焦点时,触发验证 $('#userid').blur(function(){ var userid = $(this).val(); if(userid == ''){ $('#usertip').html('<font color=\'red\'>用户名不能为空!</font>'); return false; } // 调用织梦的AJAX检查接口 $.get("{dede:global.cfg_cmspath/}/member/ajax_member.php?op=checkuser&userid="+userid+"&rand="+Math.random(), function(data){ if(data == '0'){ $('#usertip').html('<font color=\'green\'>恭喜,用户名可用!</font>'); }else{ $('#usertip').html('<font color=\'red\'>用户名已被占用,请更换!</font>'); } }); }); }); </script>这段代码会在用户输入完用户名并点击其他地方时,向后台发送一个AJAX请求,检查用户名是否可用,并将结果显示在
<span id="usertip"></span>中。
常见问题与解决方案
-
问题:注册时提示“用户名不合法”或“邮箱不合法”。 原因:后台设置了用户名和邮箱的注册规则。 解决:进入后台 -> 系统 -> 系统基本参数 -> 会员设置,检查并修改“会员用户名允许注册的字符”和“允许注册的邮箱域名”等规则。
-
问题:注册成功后,跳转的页面不是我想要的。 原因:注册成功后,系统会跳转到
succes.htm模板页面。 解决:编辑/templets/plus/succes.htm文件,修改其中的提示信息和跳转链接。 -
问题:自定义的字段在注册页面不显示。 原因: a. 字段没有在前台表单调用中设置为“是”。 b. 织梦版本问题,新版本需要手动将字段添加到注册表单的配置中(会员模型管理 -> 编辑模型 -> 字段列表 -> 勾选“前台表单调用”)。 c. 模板中调用标签
{dede:field name='xxx'/}写错了。 -
问题:样式错乱,CSS没生效。 原因:CSS文件路径错误,或者自定义的CSS优先级不够被默认样式覆盖。 解决:检查CSS路径,可以使用浏览器开发者工具(F12)查看元素,确认是哪个CSS文件在起作用,并调整你的CSS选择器优先级。
自定义织梦CMS的会员注册模板,核心就是 修改 reg_new.htm。
- 简单修改:改布局、改样式、改文字。
- 增加字段:后台添加字段 -> 前台模板调用。
- 增强交互:结合jQuery和织梦的AJAX接口实现实时验证。
希望这份详细的指南能帮助你顺利完成织梦会员注册模板的自定义!
