模板文件位置
DedeCMS的模板文件存放在 /templets/ 目录下,默认情况下,注册和登录页面都使用系统默认的模板文件,位于:

登录模板文件:
/templets/default/login.htm
注册模板文件:
/templets/default/reg_new.htm
重要提示:
- 不要直接修改
/templets/default/目录下的文件,因为升级DedeCMS时,这个目录下的文件会被覆盖。 - 正确的做法是:在后台 -> 系统 -> 系统基本参数 -> 核心设置 中,找到 “会员默认模板目录” 选项,将其设置为一个你自定义的目录,
member。 - 将
default/login.htm和default/reg_new.htm这两个文件复制到你自定义的目录(如/templets/member/)下。 - 之后,所有的修改都在你自己的目录(
/templets/member/)下进行,这样就不会影响系统升级。
登录页面 (login.htm) 结构与常用标签
登录页面的主要功能是让用户输入用户名和密码进行登录。

页面基本结构
一个典型的登录页面结构如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:global.cfg_webname/} - 用户登录</title>
<link href="{dede:global.cfg_cmsurl/}/templets/default/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="memberArea">
<!-- 登录表单开始 -->
<form name="form1" method="post" action="{dede:memberurl loginaction='index.php'}">
<input type="hidden" name="dopost" value="login" />
<div class="login-form">
<h2>用户登录</h2>
<div class="item">
<label>用户名:</label>
<input type="text" name="userid" id="userid" size="20" class="intxt" />
</div>
<div class="item">
<label>密码:</label>
<input type="password" name="pwd" id="pwd" size="20" class="intxt" />
</div>
<!-- 可选:验证码 -->
{dede:php}
if(preg_match("/4|6|7/",$safe_gdopen)){
echo '<div class="item">
<label>验证码:</label>
<input type="text" name="vdcode" id="vdcode" size="10" class="intxt" />
<img src="'.$cfg_cmspath.'/include/vdimgck.php" id="validateimg" onclick="this.src=\''.$cfg_cmspath.'/include/vdimgck.php?'+Math.random()+\'" style="cursor:pointer" title="看不清?点击更换" />
</div>';
}
{/dede:php}
<div class="item">
<label> </label>
<button type="submit" class="btn-login">登 录</button>
</div>
<div class="other">
<a href="{dede:memberurl index='index.php'}">返回首页</a> |
<a href="{dede:memberurl register='index.php'}">注册账号</a> |
<a href="{dede:memberurl action='findpwd'}">忘记密码?</a>
</div>
</div>
</form>
<!-- 登录表单结束 -->
</div>
</body>
</html>
核心标签说明
-
{dede:memberurl loginaction='index.php'}:这是登录表单的提交地址,固定写法,不要修改。
-
<input type="hidden" name="dopost" value="login">:隐藏域,用于告诉后台处理程序这是一个登录请求。
-
<input name="userid">:- 用户名输入框,
name属性必须为userid。
- 用户名输入框,
-
<input name="pwd">:- 密码输入框,
name属性必须为pwd。
- 密码输入框,
-
{dede:php}...{/dede:php}:- 这是PHP代码块,用于根据后台是否开启验证码来动态显示验证码输入框和图片。
$safe_gdopen是一个系统变量,控制验证码类型。
- 这是PHP代码块,用于根据后台是否开启验证码来动态显示验证码输入框和图片。
-
<img src="...vdimgck.php...">:- 验证码图片的地址。
onclick事件实现了点击刷新验证码的功能。
- 验证码图片的地址。
-
{dede:memberurl register='index.php'}:指向注册页面的链接。
-
{dede:memberurl action='findpwd'}:指向找回密码页面的链接。
注册页面 (reg_new.htm) 结构与常用标签
注册页面的功能是让新用户填写信息并提交,成为网站会员。
页面基本结构
注册页面比登录页面复杂,因为它包含多个输入字段和验证逻辑。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:global.cfg_webname/} - 用户注册</title>
<link href="{dede:global.cfg_cmsurl/}/templets/default/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="memberArea">
<!-- 注册表单开始 -->
<form name="form1" method="post" action="{dede:memberurl registeraction='index.php'}">
<input type="hidden" name="dopost" value="regnew" />
<input type="hidden" name="step" value="1" />
<div class="reg-form">
<h2>用户注册</h2>
<div class="item">
<label>用户名:</label>
<input type="text" name="userid" id="userid" size="30" class="intxt" />
<span>用户名唯一,不可更改</span>
</div>
<div class="item">
<label>密码:</label>
<input type="password" name="pwd" id="pwd" size="30" class="intxt" />
</div>
<div class="item">
<label>确认密码:</label>
<input type="password" name="pwdok" id="pwdok" size="30" class="intxt" />
</div>
<div class="item">
<label>电子邮箱:</label>
<input type="text" name="email" id="email" size="30" class="intxt" />
</div>
<!-- 可选:其他字段,如昵称、安全问题等 -->
<!-- {dede:php} if($cfg_mb_spacesta > -1) { echo '<div class="item"><label>昵称:</label><input type="text" name="uname" id="uname" size="30" class="intxt" /></div>'; } {/dede:php} -->
<!-- 验证码 -->
{dede:php}
if($safe_gdopen > 0){
echo '<div class="item">
<label>验证码:</label>
<input type="text" name="vdcode" id="vdcode" size="10" class="intxt" />
<img src="'.$cfg_cmspath.'/include/vdimgck.php" id="validateimg" onclick="this.src=\''.$cfg_cmspath.'/include/vdimgck.php?'+Math.random()+\'" style="cursor:pointer" title="看不清?点击更换" />
</div>';
}
{/dede:php}
<div class="item">
<label> </label>
<button type="submit" class="btn-reg">立即注册</button>
</div>
<div class="other">
已有账号? <a href="{dede:memberurl login='index.php'}">立即登录</a>
</div>
</div>
</form>
<!-- 注册表单结束 -->
</div>
</body>
</html>
核心标签说明
-
{dede:memberurl registeraction='index.php'}:注册表单的提交地址,固定写法。
-
<input type="hidden" name="dopost" value="regnew">:告诉后台这是一个“新用户注册”请求。
-
<input type="hidden" name="step" value="1">:- 注册步骤,
step=1通常表示第一步,即填写基本信息。
- 注册步骤,
-
核心注册字段:
userid: 用户名pwd: 密码pwdok: 确认密码email: 电子邮箱uname: 昵称(需要后台开启会员空间功能)safequestion: 安全问题(后台可配置)safeanswer: 安全答案(后台可配置)
-
{dede:php} if($cfg_mb_spacesta > -1) { ... } {/dede:php}:- 这是一个条件判断,
$cfg_mb_spacesta控制是否启用会员空间,如果启用,则显示昵称等字段。
- 这是一个条件判断,
如何自定义修改
修改这两个模板非常简单,就像修改普通的HTML文件一样,但需要注意以下几点:
-
保留核心标签和
name属性:- 表单的
action地址、method="post"以及所有输入框的name属性(如userid,pwd)绝对不能修改,否则登录/注册功能将无法工作。 - 隐藏域
<input type="hidden" name="dopost" value="...">也必须保留。
- 表单的
-
修改样式:
- 你可以完全重写HTML结构,比如把表单从左边移到右边,或者改变布局。
- 你可以修改或删除
<link href="...style.css">这一行,然后自己写<style>标签内的CSS样式,或者引入你自己的CSS文件。
-
增减字段:
- 增加字段:如果你想在注册时收集更多信息(如手机号、生日等),你需要做三件事:
- 在
reg_new.htm模板中添加对应的HTML输入框,并设置一个唯一的name属性(如mobile,birthday)。 - 修改DedeCMS数据库的
dede_member和dede_member_tj(或其他相关)表,增加对应的字段。 - 修改后台处理注册的PHP文件(通常在
/member/reg_new.php),增加接收和处理新字段的代码。(这一步需要PHP编程知识,比较复杂)
- 在
- 减少字段:如果你想隐藏某些默认字段(比如安全问题),只需在模板中删除对应的HTML代码块即可。
- 增加字段:如果你想在注册时收集更多信息(如手机号、生日等),你需要做三件事:
-
添加JS验证:
- 为了提升用户体验,你可以在页面底部添加
<script>标签,编写JavaScript代码来检查用户是否填写了必填项、两次密码是否一致等,在提交表单前进行预验证。
- 为了提升用户体验,你可以在页面底部添加
- 位置:
/templets/default/login.htm和/templets/default/reg_new.htm,但务必复制到自定义目录下修改。 - 核心:表单的
action、method和各个输入框的name属性是功能实现的关键,不可随意改动。 - 自由:HTML结构、CSS样式、文字内容可以完全自定义,以符合你的网站设计风格。
- 扩展:增减功能字段需要同时修改模板、数据库和后台PHP文件,难度较大。
希望这份详细的指南能帮助你成功修改DedeCMS的注册登录模板!
