zblog后台无法登陆 只刷新页面解决办法
昨晚本来想更新一篇文章,却没想到博客后台管理登陆不上了。首先判断用户名和密码是否正确,由于我用户名密码是用RoboForm工具加密保存的,肯定不会错的。于是之前手动修改了Link.asp等2个链接文件模板后网站出现错误,打不开。替换了一些asp文件和数据库后才解决的。话虽如此再确认一下密码是必要的,在数据库把正确的密码替换后上传后测试还是不行,把数据库放到别的博客可以登录,说明密码没问题。然后百度,谷歌查原因,发现也有不少问zblog无法登陆问题的,也有几个解决办法。比如替换common.js,输入用户名后选择保存一天再输入密码,以及修改SetCookie js函数,我试了都不行。本人也懂一些代码,于是想找找程序处理登陆功能的相关代码,zbolg架构比较细,一层一层还真不容易找,就用Dreamweaver批量查找与用户名相关数据库字段,已经22点过了,比较困了,查找替换弄错了,把相关字段都替换为空了。。。于是就想明天再弄了。
昨天是想从处理登陆结果数据库操作代码找起的,反着来的。今天从出问题的页面一步一步开始找原因,很快就发现了问题点。点了登陆按钮,页面只是刷新了一下,没有做任何处理。然后看login.asp代码分析找问题。表单的action值没有在form里面直接写上,而是js赋值的。也就是action值没有被赋值就提交了,显然在赋值之前js存在错误导致没有被赋值。经分析发现js里面有几处“;”号没有写。修改调整,测试后可以正常登陆了。今天就把这事件和处理办法写出来,虽然和东革阿里博客主题有点不相关,也希望给以后有同样问题的朋友一些帮助。
------------------------以上闲话可以忽略不看------------------------
问题:zblog无法登陆
现象:输入正确的用户名密码验证码后点击登陆按钮无任何提示,页面只刷新一下。
zblog无法登陆,原因有很多,比如数据库连接,密码错误等等,这些是有提示错误原因的。这些原因相信站长自己可以识别或者解决。此方法仅适用上面所述现象的解决。看清楚了哦,问题由来可能是博客安装后由于搬家或备份修复,替换了某些文件导致的。可能是读取cookies出错导致表单action没赋值。
处理办法:
1. 找到并用记事本打开根目录login.asp页面
2. 把下面代码:
if(GetCookie("username")){document.getElementById("edtUserName").value=unescape(GetCookie("username"))}; document.getElementById("btnPost").onclick=function(){ var strUserName=document.getElementById("edtUserName").value; var strPassWord=document.getElementById("edtPassWord").value; var strSaveDate=document.getElementById("edtSaveDate").value if((strUserName=="")||(strPassWord=="")){ alert(""); return false; } strUserName=escape(strUserName); strPassWord=MD5(strPassWord); SetCookie("username",strUserName,strSaveDate); SetCookie("password",strPassWord,strSaveDate); document.getElementById("frmLogin").action="cmd.asp?act=verify" }
替换成:
document.getElementById("btnPost").onclick=function(){ var strUserName=document.getElementById("edtUserName").value; var strPassWord=document.getElementById("edtPassWord").value; var strSaveDate=document.getElementById("edtSaveDate").value; if((strUserName=="")||(strPassWord=="")){ alert(""); return false; } strUserName=escape(strUserName); strPassWord=MD5(strPassWord); SetCookie("username",strUserName,strSaveDate); SetCookie("password",strPassWord,strSaveDate); document.getElementById("frmLogin").action="cmd.asp?act=verify"; } if(GetCookie("username")){document.getElementById("edtUserName").value=unescape(GetCookie("username"));}
改动的地方是二句代码加了个“;”,如下:
var strSaveDate=document.getElementById("edtSaveDate").value
document.getElementById("frmLogin").action="cmd.asp?act=verify"
移动了一个“;”,语句变成如下:
if(GetCookie("username")){document.getElementById("edtUserName").value=unescape(GetCookie("username"));}
以及上面这句代码位置移动改变了一下。
3. 保存后上传空间,替换原来页面。再测试Ing。。。
无法登陆的朋友一定要看清楚上面现象,不是所有不能登陆原因都可以解决的!花了我半天以上时间,能帮到大家也值得的。
修改前代码如下:
修改后代码如下:
文章原创于东革阿里的博客www.ok365ok.com ,转载请注明出处。O(∩_∩)O~
补充:web前端 , HTML/CSS ,