首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库WEBASP

新云CMS更换https访问方式后无法登录后台的解决方式

减小字体 增大字体 作者:本站  来源:本站原创  发布时间:2026-05-18 14:45:57

网站一直使用新云(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

保存后,问题可以解决。

 ====

顺便问一句,还有谁像我一样再使用这么老的东西?(#^.^#)

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2026 biye5u.com. All Rights Reserved.