- ·上一篇内容:NumPy数组操作之数组转置
- ·下一篇内容:已经没有了
新云CMS更换https访问方式后无法登录后台的解决方式
网站一直使用新云(newasp)CMS,但自从更换https访问方式后,后台一直无法登录。
但使用http方式访问则正常。
经过不断地调试,发现是cls_main.asp文件中的一个函数导致的。
cls_main.asp是新云CMS的一个核心文件。其中,ChkPost()函数用于检测提交的数据是来自域内还是域外。
其原来的形式如下:
Public Function ChkPost()
Dim server_v1,server_v2
Chkpost=False
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
If Mid(server_v1,8,len(server_v2))=server_v2 Then Chkpost=True
End Function
该函数通过对比提交数据的来源网址和当前网站域名是否一致来判断是否非法提交。
其运用的方式为截取来源网址 http:// 后与当前域名长度相等的部分,然后对比两者是否相同,从而判断是否非法提交。
在使用 http:// 方式提交时,其截取的正好是 http:// 后的内容,也就是代码中的 Mid(server_v1, 8, ......) ,8即是从8开始截取,但更换https://访问后,其截取的开始位置为9,所以,原来的代码判断会出现问题,导致判断失误。
修改方式一:
如果今后一直使用https://方式登录,则直接把8改为9即可。
修改方式二:
如果在http或https之间来回切换,则可以更改为如下方式:
Public Function ChkPost()
Dim server_v1,server_v2
Dim pos, spos
Chkpost=False
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
pos = instr(server_v1, "://")
If pos > 0 then
spos = pos + 3
If Mid(server_v1,spos,len(server_v2))=server_v2 Then
Chkpost=True
End If
End If
End Function
保存后,问题可以解决。
====
顺便问一句,还有谁像我一样再使用这么老的东西?(#^.^#)
微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。
个人成长离不开各位的关注,你的关注就是我继续前行的动力。
