



测了一下,果然如楼主所言,研究了一下,解决办法:
将
IF Instr(Request.ServerVariables("URL")
前面加一个注释符,即单引号,变成即可
'IF Instr(Request.ServerVariables("URL")
这一句代码在本V5.0程序体系统中是不应该存在的,它是"原准备提供的功能,但后来因故取消"的无用代码,在发布前没有清除干净。
这句代码的作用是说:"如果用户访问的是超级管理员后台路径,就不受IP屏蔽限制" 。这种想法有点匪夷所思,没有哪个站长会屏蔽自己的IP,而且这一点有可能被当成后门(你屏蔽了某IP,只能拒绝其访问前台,但后台不受限制!)
Application(CacheName&"_Table")在海洋V5.0 SQL程序中是无效的一个application变量,它对应数据库中名为“china_setup”表的"table"字段,事实上,在china_setup表中是不存在这个字段的(作者清除了数据库中的字段,但没有清除相关代码)。
大家可以在conn.asp中看到,本程序主要的application变量有Application(CacheName&"_Setup")
Application(CacheName&"_WebSetting")
Application(CacheName&"_LockIP")和
Application(CacheName&"_About")这四个
刚好与表china_setup中几个字段对应,但唯独不存在 Application(CacheName&"_Table"),这肯定是编程者当初想提供一个功能,但后来因故取消,但没将代码清理干净,导致添加IP时出错。
附带说一下(重要!),由Application(CacheName&"_Table")问题引出了两个废文件,即admin/table.asp及根目录下的table.asp(这个更像一个临时来测试程序的),这两个文件原本是用来更改“超管后台路径”及“分站管理员后台路径”的,当我们执行这两文件并修改管理员后台路径后,提交时,会将数据写入Application(CacheName&"_Table"),同时存入数据库表 china_setup的"table"字段中,问题如前面所言,china_setup中根本就没有"table"这个字段,所以这两个文件完全无用(倒是可以将Application(CacheName&"_Table")赋值)。这两个文件可以通过FSO功能随意修改admin文件夹名称,而且可以让后台访问者绕过IP屏蔽的限制。像这种即有风险,但又不能实现预定功能的文件,最好不要上传到空间里。
当然作者在后台仍然提供了一个修改后台路径的功能,即在“系统设置”里,对应文件是sysset.asp。但它并未通过FSO来改变后台文件夹名称,而是要求站长通过 FTP手工改动,这想必是出于安全的考虑。