模板无忧(www.moban51.com)是国内非常知名的DedeCMS资源网站,他们提供的插件通常经过大量用户的检验,稳定性和兼容性都比较好,这个Ajax登录插件的核心目标是:在不刷新页面的情况下,完成用户登录,并给出友好的提示。

dedecms仿模板无忧ajax登陆插件
(图片来源网络,侵删)

  • 功能: 实现网站前台的Ajax无刷新登录。
  • 优点:
    1. 用户体验好: 登录过程无需跳转页面,用户留在当前浏览位置,操作流畅。
    2. 即时反馈: 登录成功或失败,通过弹窗或页面内提示信息即时告知用户。
    3. 安全性: 通常会集成验证码功能,防止恶意破解。
    4. 美观: 登录框通常设计得比较现代化,可以融入网站整体风格。
  • 适用版本: 通常适用于DedeCMS V5.7 - V5.8等主流版本(具体请看插件说明)。

准备工作

  1. 下载插件: 访问模板无忧网站,搜索“DedeCMS Ajax登录插件”,下载最新的插件包,通常是一个 .zip 压缩文件。
  2. 备份网站: 在安装任何插件之前,务必备份你的网站程序和数据库! 这是最重要的一步,以防万一。
  3. 检查文件权限: 确保你网站的 data 目录和 templets 目录具有可写权限(通常是755或777,视服务器环境而定),因为插件安装过程可能需要向这些目录写入文件。

安装步骤(通用流程)

虽然不同版本的插件细节可能略有差异,但核心步骤基本一致,以下是一个标准的安装流程:

步骤 1: 上传文件

将下载的插件包解压,你会看到几个文件夹,通常包含:

  • loginajaxlogin: 包含插件的核心PHP文件。
  • images: 包含登录框用到的图片资源。
  • js: 包含实现Ajax效果的JavaScript文件。
  • templets: 包含登录框的HTML模板文件。

使用FTP工具或你的主机控制面板,将这些文件夹内的文件上传到你网站根目录的对应位置

  • /include/ 目录下的文件,上传到 /include/
  • /templets/ 目录下的文件,上传到 /templets/
  • 根目录下的文件(如 index.php 的修改版),上传到网站根目录。

特别注意: 很多插件会要求你修改 index.phphead.htm 等文件来引入登录框,请仔细阅读插件包内的 readme.txt安装说明.txt 文件,按照指示进行操作,通常是添加一段调用代码。

dedecms仿模板无忧ajax登陆插件
(图片来源网络,侵删)

步骤 2: 修改模板文件

这是最关键的一步,你需要在你希望显示登录框的模板文件中,加入调用代码。

  1. 打开模板文件: 登录DedeCMS后台,进入【模板】->【默认模板管理】,找到你当前使用的首页模板 index.htm,或者其他需要显示登录框的页面模板(如 head.htm)。

  2. 插入调用代码: 在 <head> 标签内,加入引入CSS和JS的代码:

    <link href="{dede:global.cfg_cmsurl/}/templets/default/style/login.css" rel="stylesheet" type="text/css" />
    <script src="{dede:global.cfg_cmsurl/}/templets/default/js/jquery.min.js"></script>
    <script src="{dede:global.cfg_cmsurl/}/templets/default/js/login.js"></script>

    注意:路径和文件名请根据你上传的实际情况修改。

    dedecms仿模板无忧ajax登陆插件
    (图片来源网络,侵删)

    在你希望显示登录框的位置(比如网站头部右侧),加入登录框的HTML代码:

    <div id="login-area">
        <!-- 这里是登录框的默认显示内容,通常是一个“登录”链接 -->
        <a href="javascript:;" onclick="showLoginBox()">登录</a>
        <!-- 登录框的弹窗内容,默认是隐藏的 -->
        <div id="login-box" style="display:none;">
            <form id="loginform" name="loginform" action="{dede:global.cfg_cmspath/}/member/index_do.php" method="POST">
                <input type="hidden" name="dopost" value="login" />
                <input type="hidden" name="keeptime" value="604800" />
                <dl>
                    <dd><strong>用户名:</strong><input type="text" name="userid" id="userid" size="20" class="intxt" /></dd>
                    <dd><strong>密码:</strong><input type="password" name="pwd" id="pwd" size="20" class="intxt" /></dd>
                    <dd><strong>验证码:</strong>{dede:global.cfg_md5yes/}<input type="text" name="vdcode" id="vdcode" size="8" class="intxt" /> <img src="{dede:global.cfg_cmspath/}/include/vdimgck.php" id="validateCodeImg" style="cursor:pointer" onclick="this.src='{dede:global.cfg_cmspath/}/include/vdimgck.php?'+Math.random();" title="看不清?点击换一张" /></dd>
                    <dd><button type="submit" class="btn-login">登 录</button></dd>
                    <dd><a href="{dede:global.cfg_memberurl/}/index_do.php?fmdo=user&dopost=regnew">注册新账号</a> | <a href="{dede:global.cfg_memberurl/}/resetpassword.php">忘记密码?</a></dd>
                </dl>
            </form>
        </div>
    </div>
  3. 保存模板: 保存 index.htm 并生成首页。

步骤 3: 后台设置

  1. 登录DedeCMS后台
  2. 找到并进入 【系统】-> 【会员设置】**。
  3. 你可以配置会员相关的参数,确保会员功能是开启的。
  4. 有些插件可能还会有一个专门的后台管理菜单,【插件】-> 【Ajax登录设置】**,用于配置登录框的样式、提示文字等,如果找不到,说明该插件功能比较简单,直接在前端模板中配置即可。

常见问题与解决方案

登录没反应,控制台报错(如 $ is not defined

  • 原因: 通常是jQuery库没有正确加载,或者路径错误。
  • 解决:
    1. 检查模板中 <head> 部分引入的 jquery.min.js 路径是否正确。
    2. 确保你的网站已经全局加载了jQuery,很多DedeCMS模板默认不加载,需要手动添加,可以尝试将jQuery的引入代码放在其他JS文件之前。

点击登录后,页面直接跳转到了 member/index_do.php,而不是Ajax效果

  • 原因: Ajax的JS代码没有正确执行,或者表单的 onsubmit 事件没有被正确绑定。
  • 解决:
    1. 检查 login.js 文件是否成功上传并正确引入。
    2. 检查 login.js 文件内容,看它是否正确绑定了表单的 submit 事件,通常代码会类似这样:
      $(document).ready(function(){
          $("#loginform").submit(function(){
              // Ajax提交逻辑...
              return false; // 这句非常重要,阻止表单默认提交
          });
      });
    3. 确保你的表单 idloginform,并且JS代码中引用了这个ID。

验证码不显示或点击无效

  • 原因: 验证码调用路径错误,或者服务器GD库未开启。
  • 解决:
    1. 检查验证码图片的 src 属性:src="{dede:global.cfg_cmspath/}/include/vdimgck.php",确保 {dede:global.cfg_cmspath/} 这个全局变量在你的网站上输出正确。
    2. 联系你的主机服务商,确认PHP的GD库扩展是否已安装并启用。

登录提示“用户名或密码错误”,但密码是正确的

  • 原因:
    1. Cookie问题:浏览器禁用了Cookie。
    2. data 目录权限问题,导致无法写入登录session。
    3. member 目录下的配置文件被修改过。
  • 解决:
    1. 尝试开启浏览器Cookie。
    2. 将网站 data 目录的权限设置为755