为什么要采用免跳转登陆?
经常验证码输入错误,系统会跳转到错误提示页,几秒后才返回,又需重新输入密码。导致每1次的登陆,都要花数秒,所以就想简单点,错就重输,对就进去,别让我等。
最开始改动系统函数showmsg,当请求参数带有inajax时,则返回json格式,即可实现全站的ajax请求。
但是若是升级程序,官方文件又会将修改的文件覆盖还原。一直这样也不是办法,所以干脆改模板,即使文件被还原回来至少不影响正常使用。
原理:登陆后台时,判断返回的html包含登陆成功,则跳转到后台管理,否则直接在登陆页,直接提示出错原因(验证码或密码错)
修改方法:
将后台登陆文件 /application/admin/view/login.html 文件的内容,替换成下面代码,保存即可:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>后台管理登录 - YzmCMS内容管理系统</title>
<link rel="stylesheet" href="<?php echo STATIC_URL;?>admin/yzm_admin/css/yzm.admin.login.css" />
<link rel="Shortcut Icon" href="<?php echo STATIC_URL;?>admin/yzm_admin/images/favicon.ico" />
<script type="text/javascript" src="/common/static/js/jquery-1.8.2.min.js"></script>
</head>
<body>
<div class="yzm-loginwarrp">
<div class="yzm-logo">管理员登录</div>
<div class="yzm-login-form" id="#loginForm">
<form method="post" action="" onsubmit="login(); return false;">
<ul>
<li class="yzm-login-item">
<input type="text" name="username" class="yzm-login-input" required="required" autofocus="autofocus" placeholder="请输入用户名"><span>用户名:</span>
</li>
<li class="yzm-login-item">
<input type="password" name="password" class="yzm-login-input" required="required" placeholder="请输入密码"><span>密 码:</span>
</li>
<li class="yzm-login-item">
<img src="<?php echo U('api/index/code');?>" border="0" class="yzm-verifyimg" id="yzm-verifyimg" onclick="this.src=this.src+'?'" />
<input type="text" name="code" class="yzm-login-input yzm-verify-input" required="required" placeholder="请输入验证码"><span>验证码:</span>
</li>
<li class="yzm-login-sub">
<input type="submit" name="dosubmit" value="登 录" />
</li>
</ul>
</form>
</div>
</div>
<div class="yzm-footer">
<p>Powered By
<a href="http://www.yzmcms.com" target="_blank" title="<?php echo YZMCMS_SOFTNAME;?>">
<?php echo YZMCMS_SOFTNAME;?>
</a>© 2014-2021 袁志蒙工作室</p>
</div>
<script>
function login() {
$.ajax({
url: "/admin/index/login.html",
type: "post",
data: {
"username": $('input[name="username"]').val(),
"password": $('input[name="password"]').val(),
"code": $('input[name="code"]').val(),
"dosubmit": '1'
},
dataType: 'html',
success: function (data) {
var stt;
stt = data.substring(data.indexOf('info">') + 6, data.indexOf('info">') + 12);
if (stt == '登录成功!<') {
window.location.href = "/admin";
} else {
$(".yzm-logo").html(stt)
$("#yzm-verifyimg").attr('src', $("#yzm-verifyimg").attr('src') + "?rand=" + Math.random());
$('input[name="code"]').val("");
}
}
});
}
$("#login").on("click", function () {
login();
})
</script>
</body>
</html>