织梦 顶部登录 代码

99ANYc3cd6
预计阅读时长 21 分钟
位置: 首页 织梦建站 正文
  1. 使用织梦自带的member标签(推荐,最标准)

    这种方法利用织梦内置的会员系统标签,可以直接调用登录状态、登录框、退出链接等,最稳定,也最符合织梦的机制。

  2. 手动编写HTML + PHP代码(灵活,适合自定义)

    这种方法可以让你完全控制HTML结构和样式,但需要自己处理登录逻辑和状态判断。

下面我将详细介绍这两种方法,并提供完整的代码示例。


使用织梦自带的member标签(推荐)

这是最标准、最简单的方法,织梦的member标签是一个功能强大的标签集合,可以处理会员相关的各种显示需求。

步骤1:确定要放置登录框的位置

顶部登录框会放在网站头部模板文件中,这个文件一般是: /templets/你的默认模板文件夹/header.htm

打开这个文件,找到你想要放置登录框的位置,比如<div class="topbar">或者<div class="header-right">内部。

步骤2:添加member标签代码

将以下代码粘贴到你想显示登录框的位置。

{dede:memberphp}
    <!-- 登录状态 -->
    <div id="login-top">
        {dede:if $cfg_ml->IsLogin()}
            <!-- 如果已登录,显示欢迎信息和退出链接 -->
            欢迎您,
            <strong>[field=username/]</strong>
            <a href="{dede:memberurl function='GetUrl(@me)'/}" target="_blank">会员中心</a>
            <a href="javascript:;" onclick="JavaScript:if(confirm('确定要退出登录吗?')){window.location='{dede:global.cfg_cmspath/}/member/index_do.php?fmdo=login&dopost=exit'}">退出</a>
        {else /}
            <!-- 如果未登录,显示登录表单 -->
            <form name="userlogin" action="{dede:global.cfg_memberurl/}/index_do.php" method="POST">
                <input type="hidden" name="dopost" value="login" />
                <input type="text" name="userid" placeholder="用户名" />
                <input type="password" name="pwd" placeholder="密码" />
                <input type="checkbox" name="keeptime" value="604800" />记住我
                <button type="submit">登录</button>
                <a href="{dede:global.cfg_memberurl/}/index.php?a=reg">注册</a>
                <a href="{dede:global.cfg_memberurl/}/resetpassword.php">忘记密码?</a>
            </form>
        {/dede:if}
    </div>
{/dede:memberphp}

代码解释:

  • {dede:memberphp}...{/dede:memberphp}:这是一个块级标签,用于包裹所有会员相关的逻辑和HTML,它会自动处理会员登录状态的判断。
  • {dede:if $cfg_ml->IsLogin()}...{else /}...{/dede:if}:这是核心的条件判断语句。
    • $cfg_ml->IsLogin():这是一个PHP函数,用于检查当前用户是否已登录,如果返回true,则显示if;否则显示else
  • [field=username/]:会员信息标签,用于显示当前登录用户的用户名。
  • {dede:memberurl function='GetUrl(@me)'}:生成会员中心的链接。
  • <form ...>:登录表单。
    • action="{dede:global.cfg_memberurl/}/index_do.php":表单提交地址,这是织梦处理登录的核心文件。
    • name="dopost" value="login":告诉后台我们要执行的是“登录”操作。
    • name="userid"name="pwd":用户名和密码的输入框名称,不要修改
    • name="keeptime":记住登录状态的时长,单位是秒。

步骤3:添加CSS样式(可选)

为了让登录框看起来更美观,你可以在网站的CSS文件(如/templets/你的默认模板文件夹/style.css)中添加一些样式。

/* 顶部登录框样式示例 */
#login-top {
    display: flex;
    align-items: center;
    font-size: 14px;
}
#login-top form {
    display: flex;
    align-items: center;
}
#login-top input[type="text"],
#login-top input[type="password"] {
    padding: 5px 10px;
    margin-right: 5px;
    border: 1px solid #ccc;
    border-radius: 3px;
}
#login-top button {
    padding: 5px 15px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 3px;
    cursor: pointer;
}
#login-top a {
    margin-left: 10px;
    color: #666;
    text-decoration: none;
}
#login-top a:hover {
    color: #007bff;
    text-decoration: underline;
}

手动编写HTML + PHP代码(灵活)

如果你对PHP和HTML比较熟悉,并且想要完全自定义登录框的外观和结构,可以使用这种方法。

步骤1:在模板中添加HTML结构

同样,在header.htm文件中添加如下HTML结构。

<div id="my-custom-login">
    <?php
        // 引入会员类
        // global $cfg_cmspath; 这行通常在全局中已定义,如果报错可以加上
        require_once(DEDEMEMBER.'/config.php');
        // 检查登录状态
        if($cfg_ml->IsLogin()) {
            // 已登录逻辑
    ?>
            <span>欢迎您,<strong><?php echo $cfg_ml->M_UserName; ?></strong></span>
            <a href="<?php echo $cfg_memberurl; ?>/index.php">会员中心</a>
            <a href="javascript:;" onclick="JavaScript:if(confirm('确定要退出登录吗?')){window.location='<?php echo $cfg_memberurl; ?>/index_do.php?fmdo=login&dopost=exit'}">退出</a>
    <?php
        } else {
            // 未登录逻辑
    ?>
            <form name="userlogin" action="<?php echo $cfg_memberurl; ?>/index_do.php" method="POST">
                <input type="hidden" name="dopost" value="login" />
                <input type="text" name="userid" placeholder="用户名" />
                <input type="password" name="pwd" placeholder="密码" />
                <button type="submit">登录</button>
                <a href="<?php echo $cfg_memberurl; ?>/index.php?a=reg">注册</a>
            </form>
    <?php
        }
    ?>
</div>

代码解释:

  • require_once(DEDEMEMBER.'/config.php');:这是关键!必须引入织梦的会员配置文件,这样才能使用$cfg_ml等全局会员对象。
  • if($cfg_ml->IsLogin()):与方法一中的判断逻辑完全相同。
  • $cfg_ml->M_UserName:直接获取当前登录用户的用户名。
  • <?php echo $cfg_memberurl; ?>:输出会员中心的URL,与方法一中的标签作用相同。

步骤2:添加CSS样式

与方法一类似,你也需要为自定义的#my-custom-login添加CSS样式来美化它。


总结与建议

特性 方法一 (member标签) 方法二 (手动PHP)
易用性 非常简单,只需复制粘贴标签。 需要一定的PHP和HTML基础。
稳定性 极高,是织梦官方推荐的方式,升级影响小。 依赖直接引入PHP文件,如果织梦结构变化可能有影响。
灵活性 较低,受限于标签的输出格式。 极高,可以完全控制HTML结构和PHP逻辑。
适用场景 绝大多数情况,特别是新手或快速建站。 需要高度定制化UI和交互的复杂项目。

对于绝大多数用户,我强烈推荐使用【方法一】,它足够强大、稳定且易于维护,只有在方法一无法满足你特定的自定义需求时,才考虑使用方法二。

-- 展开阅读全文 --
头像
Linux C语言计时有哪些常用方法?
« 上一篇 今天
C语言中actionl是什么?
下一篇 » 今天

相关文章

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

目录[+]