使用官方默认的登录标签(最简单、推荐)
这是最直接的方法,织梦系统已经内置了登录所需的标签,你只需要在模板文件中找到合适的位置,将这些标签粘贴进去即可。

(图片来源网络,侵删)
适用场景:绝大多数情况,尤其是对样式没有特殊要求时。
操作步骤:
- 登录后台:使用管理员账号登录您的织梦DedeCMS后台。
- 找到模板文件:在后台左侧菜单栏,点击【模板】 -> 【默认模板管理】。
- 编辑主页模板:在列表中找到并点击
index.htm(您的首页模板文件),进入编辑模式。 - 插入登录代码:在您希望显示登录框的位置(页面顶部、侧边栏
head.htm或footer.htm中),插入以下代码块。
登录代码块(复制即可使用):
<div id="userlogin">
<form name="userlogin" action="{dede:global.cfg_memberurl/}/index_do.php" method="POST">
<input type="hidden" name="dopost" value="login" />
<input type="hidden" name="keeptime" value="604800" />
<div class="fb">
<span>用户名:</span>
<input type="text" name="userid" size="20" class="ipt-txt" />
</div>
<div class="fb">
<span>密码:</span>
<input type="password" name="pwd" size="20" class="ipt-txt" />
</div>
<div class="fb">
<span>验证码:</span>
<input type="text" name="vdcode" size="8" class="ipt-txt" />
<img src="{dede:global.cfg_cmspath/}/include/vdimgck.php" width="60" height="24" style="cursor:pointer" onclick="this.src='{dede:global.cfg_cmspath/}/include/vdimgck.php?'+Math.random();" title="看不清?点击更换" />
</div>
<div class="fb">
<button type="submit" class="btn-1">登录</button>
<a href="{dede:global.cfg_memberurl/}/index.php" target="_blank">注册</a>
<a href="{dede:global.cfg_memberurl/}/resetpassword.php" target="_blank">找回密码</a>
</div>
</form>
</div>
代码解析:

(图片来源网络,侵删)
{dede:global.cfg_memberurl/}:这是一个全局变量,会自动替换成您网站会员中心的URL,如http://您的域名/member/,使用它比硬编码URL更可靠。name="dopost" value="login":告诉系统这是一个登录请求。name="userid"和name="pwd":用户名和密码的输入框,name值是固定的,不能修改。name="vdcode":验证码输入框。<img src="...vdimgck.php">:显示验证码图片。onclick="this.src='...?'+Math.random();":点击图片时刷新验证码,这是标准写法。注册和找回密码的链接也使用了{dede:global.cfg_memberurl/}来动态生成。
使用织梦标签进行更灵活的布局
如果您想让登录框的样式更美观,或者需要将用户信息(如用户名、头像)动态显示在登录框的位置,可以使用织梦的会员标签。
适用场景:需要高度自定义样式,或者需要根据用户登录状态显示不同内容时。
操作步骤:
- 同样地,打开并编辑
index.htm模板文件。 - 在需要的位置插入以下代码:
代码示例:

(图片来源网络,侵删)
{dede:php}
if($cfg_ml->IsLogin()){
// 如果已经登录,显示欢迎信息和退出链接
$uid = $cfg_ml->M_ID;
$uname = $cfg_ml->M_UserName;
$face = $cfg_ml->M_Mbface ? $cfg_ml->M_Mbface : '/member/images/dfface.gif';
$query = "SELECT * FROM `dede_member` WHERE `mid` = '$uid'";
$row = $dsql->GetOne($query);
$scores = $row['scores'];
$mtype = $row['mtype'];
$spaceUrl = $cfg_memberurl.'/index.php?uid='.$uname;
echo '
<div class="user-info">
<div class="user-face"><img src="'.$face.'" alt="'.$uname.'"></div>
<div class="user-welcome">
<p>欢迎您, <a href="'.$spaceUrl.'" target="_blank">'.$uname.'</a></p>
<p>积分: <span>'.$scores.'</span> | 类型: <span>'.$mtype.'</span></p>
<a href="'.$cfg_memberurl.'/index_do.php?fmdo=login&dopost=exit&keeptime=2592000" target="_top">退出登录</a>
</div>
</div>';
} else {
// 如果未登录,显示登录表单
echo '
<div id="login-box">
<form name="userlogin" action="{dede:global.cfg_memberurl/}/index_do.php" method="POST">
<input type="hidden" name="dopost" value="login" />
<input type="hidden" name="keeptime" value="604800" />
<div class="login-item">
<input type="text" name="userid" placeholder="用户名" />
</div>
<div class="login-item">
<input type="password" name="pwd" placeholder="密码" />
</div>
<div class="login-item">
<input type="text" name="vdcode" placeholder="验证码" />
<img src="{dede:global.cfg_cmspath/}/include/vdimgck.php" onclick="this.src=\'{dede:global.cfg_cmspath/}/include/vdimgck.php?\'+Math.random();" />
</div>
<button type="submit" class="login-btn">登 录</button>
<div class="login-links">
<a href="{dede:global.cfg_memberurl/}/index.php">注册</a> |
<a href="{dede:global.cfg_memberurl/}/resetpassword.php">找回密码</a>
</div>
</form>
</div>';
}
{/dede:php}
代码解析:
{dede:php}...{/dede:php}:这是织梦的PHP代码块,可以直接在里面写PHP逻辑。$cfg_ml->IsLogin():判断用户是否已登录。- 如果已登录,它会从数据库中查询当前用户的头像、用户名、积分等信息,并格式化后显示。
- 如果未登录,它会显示一个登录表单,这个表单和第一种方法的类似,但结构更灵活,方便用CSS来美化。
- 退出登录的链接是
index_do.php?fmdo=login&dopost=exit。
调用会员中心登录模块(适合侧边栏)
这种方法通常用于调用一个已经写好的模块,比如放在网站的侧边栏(head.htm 或 footer.htm)。
适用场景:在多个页面(如所有文章页、列表页)的固定位置显示登录框。
操作步骤:
- 在模板文件中(如
head.htm)插入以下标签:
{dede:include file='member/login.htm'/}
代码解析:
- 这个标签会去
/templets/default/member/目录下寻找login.htm文件,并将其内容包含进来。 - 优点:非常方便,一次修改,所有引用了这个模板的页面都会更新。
- 缺点:样式和布局受限于
login.htm文件本身,自定义程度不如前两种方法高,如果你自定义了模板,并且没有login.htm这个文件,这个方法就会失效。
重要注意事项
-
CSS样式:无论你使用哪种方法,粘贴的HTML代码通常是没有样式的,为了让登录框看起来美观,你需要为它编写CSS样式,你可以给最外层的
div(如#userlogin或#login-box)定义一些class,然后在你的网站主CSS文件(如style.css)中添加对应的样式。/* 示例CSS样式 */ #userlogin { width: 200px; border: 1px solid #ccc; padding: 10px; border-radius: 5px; } #userlogin .fb { margin-bottom: 8px; } #userlogin .ipt-txt { border: 1px solid #ddd; padding: 5px; } #userlogin .btn-1 { background-color: #4CAF50; color: white; border: none; padding: 5px 15px; cursor: pointer; } -
验证码问题:如果验证码图片不显示,请检查:
/include/vdimgck.php文件是否存在。- 网站的目录权限是否正确,确保Web服务器(如Apache/Nginx)有读取该文件的权限。
- GD库是否已安装并启用,这是生成验证码图片的必要组件。
-
模板缓存:修改模板文件后,如果前台页面没有立即更新,请登录后台,点击【系统】 -> 【一键更新网站】,或者清除一下模板缓存,然后再刷新前台页面。
| 方法 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
| 默认标签 | 简单、快速、官方支持 | 样式固定,自定义性差 | ★★★★★ (新手首选) |
| PHP标签 | 灵活性极高,可动态判断登录状态 | 需要一点PHP和CSS知识 | ★★★★☆ (推荐给有一定经验的用户) |
| 调用模块 | 方便复用,适合侧边栏 | 自由度低,依赖特定文件 | ★★★☆☆ (适合特定布局需求) |
对于大多数用户来说,方法一 已经完全足够,如果您希望登录框和网站整体风格更统一,建议使用 方法二。
