日期:2014-05-17  浏览次数:20708 次

ASP的程序出错,本地没有问题的。
在本地调试是完全好的,可是发布到虚拟主机里面就出错了,
http://3e.xmstc.net.cn/index.asp

我把出错页面的源代码发上来,大家帮我看看啊。


VBScript code
<% 

Class clsThief
'____________________
Private value_    '窃取到的内容
Private src_      '要偷的目标URL地址
Private isGet_    '判断是否已经偷过

public property let src(str) '赋值—要偷的目标URL地址/属性
src_=str
end property

public property get value '返回值—最终窃取并应用类方法加工过的内容/属性
value=value_
end property

Public Property get Version
    Version="先锋海盗类 Version 2005"
End Property

private sub class_initialize()
value_=""
src_=""
isGet_= false
end sub
    
private sub class_terminate()
end sub

private Function BytesToBstr(body,Cset) '中文处理
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText 
objstream.Close
set objstream = nothing
End Function

public sub steal() '窃取目标URL地址的HTML代码/方法
if src_<>"" then
    dim Http
    set Http=server.createobject("MSXML2.XMLHTTP")
    Http.open "GET",src_ ,false
    Http.send()
    if Http.readystate<>4 then 
        exit sub
    end if
    value_=BytesToBSTR(Http.responseBody,"GB2312")
    isGet_= True
    set http=nothing
    if err.number<>0 then err.Clear
else 
    response.Write("<script>alert(""请先设置src属性!"")</script>")
end if
end sub

'删除偷到的内容中里面的换行、回车符以便进一步加工/方法
public sub noReturn() 
if isGet_= false then call steal()
value_=replace(replace(value_ , vbCr,""),vbLf,"")
end sub

'对偷到的内容中的个别字符串用新值更换/方法
public sub change(oldStr,str) '参数分别是旧字符串,新字符串
if isGet_= false then call steal()
value_=replace(value_ , oldStr,str)
end sub

'[color=#FF0000]主要是下面这里报错[/color]
'按指定首尾字符串对偷取的内容进行裁减(不包括首尾字符串)/方法
public sub cut(head,bot) '参数分别是首字符串,尾字符串
if isGet_= false then call steal()
        if instr(value_ , head)>0 and instr(value_ , bot)>0 then
            value_=mid(value_ ,instr(value_ ,head)+len(head),instr(value_ ,bot)-instr(value_ ,head)-len(head))
        else
            value_= "<p align=""center"">您查看的页面功能暂时未开放,请返回首页或加入我们的QQ群:4605923"
        end if
end sub

'按指定首尾字符串对偷取的内容进行裁减(包括首尾字符串)/方法
public sub cutX(head,bot) '参数分别是首字符串,尾字符串
if isGet_= false then call steal()
        if instr(value_,head)>0 and instr(value_,bot)>0 then
            value_=mid(value_ ,instr(value_ ,head),instr(value_ ,bot)-instr(value_ ,head)+len(bot))
        else
            value_= "<p align=""center"">函数cutX指定裁减的内容不存在"
        end if
end sub

'按指定首尾字符串位置偏移指针对偷取的内容进行裁减/方法
public sub cutBy(head,headCusor,bot,botCusor) 
'参数分别是首字符串,首偏移值,尾字符串,尾偏移值,左偏移用负值,偏移指针单位为字符数
if isGet_= false then call steal()
        if instr(value_,head)>0 and instr(value_,bot)>0 then
            value_=mid(value_ ,instr(value_ ,head)+len(head)+headCusor,instr(value_ ,bot)-1+botCusor-instr(value_ ,head)-len(head)-headcusor)
        else
            value_= "<p align=""center"">函数cutBy指定裁减内容不存在"
        end if
end sub

'按指定首尾字符串对偷取的内容用新值进行替换(不包括首尾字符串)/方法
public sub filt(head,bot,str) '参数分别是首字符串,尾字符串,新值,新值位空则为过滤
if isGet_= false then call steal()
        if instr(value_,head)>0 and instr(value_,bot)>0 then
            value_=replace(value_,mid(value_ ,instr(value_ ,head)+len(head) , instr(value_ ,bot)-instr(value_ ,head)-len(head)),str)
        else
            value_= "<p align=""center"">函数filt指定替换的内容不存在"
        end if
end sub

'按指定首尾字符串对偷取的内容用新值进行替换(包括首尾字符串)/方法
public sub filtX(head,bot,str) '参数分别是首字符串,尾字符串,新值,新值为空则为过滤
if isGet_= false then call steal()
        if instr(value_,head)>0 and instr(va