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

(图片来源网络,侵删)
- 功能: 实现网站前台的Ajax无刷新登录。
- 优点:
- 用户体验好: 登录过程无需跳转页面,用户留在当前浏览位置,操作流畅。
- 即时反馈: 登录成功或失败,通过弹窗或页面内提示信息即时告知用户。
- 安全性: 通常会集成验证码功能,防止恶意破解。
- 美观: 登录框通常设计得比较现代化,可以融入网站整体风格。
- 适用版本: 通常适用于DedeCMS V5.7 - V5.8等主流版本(具体请看插件说明)。
准备工作
- 下载插件: 访问模板无忧网站,搜索“DedeCMS Ajax登录插件”,下载最新的插件包,通常是一个
.zip压缩文件。 - 备份网站: 在安装任何插件之前,务必备份你的网站程序和数据库! 这是最重要的一步,以防万一。
- 检查文件权限: 确保你网站的
data目录和templets目录具有可写权限(通常是755或777,视服务器环境而定),因为插件安装过程可能需要向这些目录写入文件。
安装步骤(通用流程)
虽然不同版本的插件细节可能略有差异,但核心步骤基本一致,以下是一个标准的安装流程:
步骤 1: 上传文件
将下载的插件包解压,你会看到几个文件夹,通常包含:
login或ajaxlogin: 包含插件的核心PHP文件。images: 包含登录框用到的图片资源。js: 包含实现Ajax效果的JavaScript文件。templets: 包含登录框的HTML模板文件。
使用FTP工具或你的主机控制面板,将这些文件夹内的文件上传到你网站根目录的对应位置。
/include/目录下的文件,上传到/include/。/templets/目录下的文件,上传到/templets/。- 根目录下的文件(如
index.php的修改版),上传到网站根目录。
特别注意: 很多插件会要求你修改 index.php 或 head.htm 等文件来引入登录框,请仔细阅读插件包内的 readme.txt 或 安装说明.txt 文件,按照指示进行操作,通常是添加一段调用代码。

(图片来源网络,侵删)
步骤 2: 修改模板文件
这是最关键的一步,你需要在你希望显示登录框的模板文件中,加入调用代码。
-
打开模板文件: 登录DedeCMS后台,进入【模板】->【默认模板管理】,找到你当前使用的首页模板
index.htm,或者其他需要显示登录框的页面模板(如head.htm)。 -
插入调用代码: 在
<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>注意:路径和文件名请根据你上传的实际情况修改。
(图片来源网络,侵删)在你希望显示登录框的位置(比如网站头部右侧),加入登录框的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> -
保存模板: 保存
index.htm并生成首页。
步骤 3: 后台设置
- 登录DedeCMS后台。
- 找到并进入 【系统】-> 【会员设置】**。
- 你可以配置会员相关的参数,确保会员功能是开启的。
- 有些插件可能还会有一个专门的后台管理菜单,【插件】-> 【Ajax登录设置】**,用于配置登录框的样式、提示文字等,如果找不到,说明该插件功能比较简单,直接在前端模板中配置即可。
常见问题与解决方案
登录没反应,控制台报错(如 $ is not defined)
- 原因: 通常是jQuery库没有正确加载,或者路径错误。
- 解决:
- 检查模板中
<head>部分引入的jquery.min.js路径是否正确。 - 确保你的网站已经全局加载了jQuery,很多DedeCMS模板默认不加载,需要手动添加,可以尝试将jQuery的引入代码放在其他JS文件之前。
- 检查模板中
点击登录后,页面直接跳转到了 member/index_do.php,而不是Ajax效果
- 原因: Ajax的JS代码没有正确执行,或者表单的
onsubmit事件没有被正确绑定。 - 解决:
- 检查
login.js文件是否成功上传并正确引入。 - 检查
login.js文件内容,看它是否正确绑定了表单的submit事件,通常代码会类似这样:$(document).ready(function(){ $("#loginform").submit(function(){ // Ajax提交逻辑... return false; // 这句非常重要,阻止表单默认提交 }); }); - 确保你的表单
id是loginform,并且JS代码中引用了这个ID。
- 检查
验证码不显示或点击无效
- 原因: 验证码调用路径错误,或者服务器GD库未开启。
- 解决:
- 检查验证码图片的
src属性:src="{dede:global.cfg_cmspath/}/include/vdimgck.php",确保{dede:global.cfg_cmspath/}这个全局变量在你的网站上输出正确。 - 联系你的主机服务商,确认PHP的GD库扩展是否已安装并启用。
- 检查验证码图片的
登录提示“用户名或密码错误”,但密码是正确的
- 原因:
- Cookie问题:浏览器禁用了Cookie。
data目录权限问题,导致无法写入登录session。member目录下的配置文件被修改过。
- 解决:
- 尝试开启浏览器Cookie。
- 将网站
data目录的权限设置为755
