dede注册登录模板如何修改或自定义?

99ANYc3cd6
预计阅读时长 33 分钟
位置: 首页 DEDE建站 正文

下面我将从文件位置、模板代码结构、字段说明、自定义修改以及常见问题五个方面进行详细说明。

dede注册登录模板
(图片来源网络,侵删)

模板文件位置

DedeCMS 的注册和登录模板文件都存放在 templets/ 目录下。

  1. 登录模板

    • 主登录页面: /templets/default/login.htm
    • 弹出层登录模板: /templets/default/datalist_login.htm (通常用于首页的“登录”按钮点击后弹出的窗口)
  2. 注册模板

    • 主注册页面: /templets/default/reg_new.htm
    • 协议页面: /templets/default/agreement.htm (注册前需要同意的用户协议)

重要提示:

dede注册登录模板
(图片来源网络,侵删)
  • default 是默认的模板目录,如果你使用的是其他自定义模板(templets/你的模板名/),那么你需要去对应的目录下找到这些文件。
  • 强烈建议:在修改任何模板文件之前,先备份原文件,这样如果修改出错,可以轻松恢复。

模板代码结构分析

这些模板文件本质上是 HTML 文件,但嵌入了 DedeCMS 的特定标签(如 {dede:php}{dede:global} 等)和 PHP 代码,用于实现动态功能。

登录模板 (login.htm) 结构

一个典型的登录页面包含以下部分:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">会员登录 - {dede:global.cfg_webname/}</title>
    <link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/style/css.css" type="text/css" />
</head>
<body>
    <div class="login-box">
        <h2>会员登录</h2>
        <!-- 登录表单 -->
        <form name="userlogin" method="POST" action="{dede:global.cfg_memberurl/}/index_do.php">
            <input type="hidden" name="dopost" value="login" />
            <div class="form-group">
                <label>用户名/Email/手机:</label>
                <input type="text" name="userid" id="userid" size="20" class="text" />
            </div>
            <div class="form-group">
                <label>密码:</label>
                <input type="password" name="pwd" id="pwd" size="20" class="text" />
            </div>
            <!-- 可选:验证码 -->
            {dede:php}
                if(preg_match("/验证码/is", $GLOBALS['cfg_mb_pc'])){
                    echo '<div class="form-group"><label>验证码:</label>';
                    echo '<input type="text" name="vdcode" id="vdcode" size="10" class="text" />';
                    echo '<img id="vdimgck" align="absmiddle" style="cursor:pointer" src="'.$GLOBALS['cfg_cmspath'].'/include/vdimgck.php" onclick="this.src=\''.$GLOBALS['cfg_cmspath'].'/include/vdimgck.php?'+Math.random()+\'\'" alt="看不清?点击更换" />';
                    echo '</div>';
                }
            {/dede:php}
            <div class="form-group">
                <input type="checkbox" name="keeptime" value="604800" /> <label for="keeptime">记住我</label>
            </div>
            <div class="form-group">
                <button type="submit" class="btn">登 录</button>
                <a href="{dede:global.cfg_memberurl/}/index.php">忘记密码?</a>
            </div>
        </form>
        <!-- 注册入口 -->
        <p>还没有账号?<a href="{dede:global.cfg_memberurl/}/reg_new.php">立即注册</a></p>
    </div>
</body>
</html>

关键标签说明:

  • {dede:global.cfg_memberurl/}: 获取会员中心的 URL,通常指向 /member/
  • {dede:global.cfg_webname/}: 获取网站名称。
  • {dede:global.cfg_templets_skin/}: 获取当前模板目录路径。
  • action="{dede:global.cfg_memberurl/}/index_do.php": 表单提交地址,这是处理登录请求的核心 PHP 文件。
  • name="dopost" value="login": 告诉服务器这个表单是执行“登录”操作。
  • name="userid"name="pwd": 用户名和密码的输入框名称,不能修改,后台处理程序依赖这两个字段名。
  • 验证码部分:使用 {dede:php} 标签判断是否开启验证码,并动态生成。

注册模板 (reg_new.htm) 结构

注册页面比登录页面更复杂,因为它包含了更多的字段和验证逻辑。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">会员注册 - {dede:global.cfg_webname/}</title>
    <!-- ... 其他 head 内容 ... -->
</head>
<body>
    <div class="reg-box">
        <h2>会员注册</h2>
        <!-- 注册表单 -->
        <form name="regUser" method="POST" action="{dede:global.cfg_memberurl/}/index_do.php">
            <input type="hidden" name="dopost" value="regnew" />
            <input type="hidden" name="mtype" value="个人" /> <!-- 可以根据需要修改或去掉 -->
            <input type="hidden" name="agree" value="1" /> <!-- 同意协议 -->
            <!-- 用户名 -->
            <div class="form-group">
                <label>用户名:</label>
                <input type="text" name="userid" id="userid" size="30" class="text" />
            </div>
            <!-- 密码 -->
            <div class="form-group">
                <label>密码:</label>
                <input type="password" name="pwd" id="pwd" size="30" class="text" />
            </div>
            <!-- 确认密码 -->
            <div class="form-group">
                <label>确认密码:</label>
                <input type="password" name="repass" id="repass" size="30" class="text" />
            </div>
            <!-- Email (非常重要,用于找回密码和接收通知) -->
            <div class="form-group">
                <label>Email:</label>
                <input type="text" name="email" id="email" size="30" class="text" />
            </div>
            <!-- 其他字段,如: -->
            <!-- {dede:php} $mfields = array('sex', 'age', 'tel'); foreach($mfields as $field){ ... } {/dede:php} -->
            <!-- 这部分通常由后台自定义字段生成 -->
            <!-- 验证码 -->
            {dede:php}
                if($GLOBALS['cfg_mb_pc']){
                    echo '<div class="form-group"><label>验证码:</label>';
                    echo '<input type="text" name="vdcode" id="vdcode" size="10" class="text" />';
                    echo '<img id="vdimgck" ... />'; // 同登录页
                    echo '</div>';
                }
            {/dede:php}
            <div class="form-group">
                <button type="submit" class="btn">注 册</button>
            </div>
        </form>
    </div>
</body>
</html>

关键标签说明:

  • action="{dede:global.cfg_memberurl/}/index_do.php": 提交地址,与登录相同。
  • name="dopost" value="regnew": 告诉服务器执行“注册新用户”操作。
  • name="userid", name="pwd", name="repass", name="email": 核心注册字段,名称固定。
  • name="agree" value="1": 用于表示用户已经同意了注册协议,通常会有一个复选框,用户勾选后 value 变为 1
  • 自定义字段: 注册页面的最大变量是“自定义字段”,如果你在后台“会员模型”中添加了新的字段(如:性别手机号地址等),这些字段需要手动添加到 reg_new.htm 中,并确保 name 属性与后台定义的字段名完全一致。

如何自定义修改

修改样式

直接在 login.htmreg_new.htm 文件中修改 HTML 和 CSS 样式,或者引入外部的 CSS 文件(如 {dede:global.cfg_templets_skin/}/style/css.css)来美化表单。

增加或删除字段

增加字段(以增加“手机号”为例):

  1. 后台添加字段:

    • 登录 DedeCMS 后台。
    • 进入 会员 -> 会员模型 -> 字段管理
    • 选择你要修改的会员模型(如“普通会员”),点击“添加新字段”。
    • 字段名称填 mobile (英文,不能有特殊字符)。
    • 手机号
    • 其他选项根据需要设置(如是否必填、数据类型等)。
    • 保存。
  2. 修改注册模板:

    • 打开 /templets/default/reg_new.htm
    • 在合适的位置添加 HTML 代码:
      <div class="form-group">
          <label>手机号:</label>
          <input type="text" name="mobile" id="mobile" size="30" class="text" />
      </div>
    • 关键: name="mobile" 必须和后台添加的字段名完全一致。
  3. 更新缓存:

    • 在后台点击 系统 -> 一键更新站点,更新“会员模型”和“页面HTML”,确保新字段被正确加载。

删除字段: 操作相反,先在后台删除字段,然后从模板文件中删除对应的 HTML 代码即可。

修改逻辑

如果需要修改一些简单的逻辑,比如调整验证码的显示位置、修改提示文本等,可以直接编辑模板文件。

如果需要修改复杂的业务逻辑(比如注册时自动发送短信、验证手机号等),则需要修改后台的 PHP 文件,/member/index_do.php这需要一定的 PHP 编程基础,操作前务必备份文件!


常见问题与解决方法

  1. 问题: 登录或注册后页面样式错乱。

    • 原因: 模板文件中的 CSS 路径不正确,或者 CSS 文件本身缺失。
    • 解决: 检查 {dede:global.cfg_templets_skin/} 路径是否正确,并确保 CSS 文件存在于该路径的 style/ 目录下。
  2. 问题: 注册时,自定义字段无法提交或后台看不到数据。

    • 原因: 模板文件中字段的 name 属性与后台定义的字段名不一致。
    • 解决: 仔细核对模板中 <input> 标签的 name 值和后台“字段管理”中的“字段名称”。
  3. 问题: 登录后没有跳转到预期页面。

    • 原因: 表单提交后,index_do.php 处理成功后会跳转到 cfg_memberurl 定义的页面,可能是配置问题。
    • 解决: 检查后台“系统” -> “系统基本参数” -> “核心设置”中的“会员中心目录”是否正确。
  4. 问题: 登录/注册按钮没反应。

    • 原因: 通常是 JavaScript 验证错误或表单 action 路径错误。
    • 解决:
      • 打开浏览器开发者工具(F12),在 Console 面板查看是否有 JavaScript 错误。
      • 检查表单的 action 属性是否指向了正确的 {dede:global.cfg_memberurl/}/index_do.php

希望这份详细的指南能帮助你完全掌握 DedeCMS 的注册登录模板!

-- 展开阅读全文 --
头像
C语言中getprop如何获取系统属性?
« 上一篇 今天
C语言如何实现手势识别?
下一篇 » 今天

相关文章

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

目录[+]