ShockwaveFlash1.CallFunction总提示错误

sancaoping 2010-08-10 04:18:39
我的调用代码如下:


ShockwaveFlash1.CallFunction('<invoke name="myFunction" returntype="xml"><arguments><string>123</string></arguments></invoke>');


错误提示:

  未指定的错误
...全文
1338 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ningyong58 2012-07-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
未指定的錯誤?樓上的,我把你叫聲大哥。。。你怎麼就不會變通一下呢???
這很明顯你的程序代碼有問題啊,我曾經利用D7+Flash的ocx方法與Flash進行編程接口,沒有遇到問題;只是最後移植到D2007的版本上,根本不起作用,原來是D2007未封閉此函數和事件。。。因此,你只能參考此Flash的ocx的SDK,研究一下XML參數字符格式並解析。。。

Flash也提供了OCX的方法接口,如……
[/Quote]

请问:数组对应的Flash的AS3如何写。
sancaoping 2010-08-18
  • 打赏
  • 举报
回复
成功了!非常感谢
sancaoping 2010-08-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 kye_jufei 的回复:]
認真看一下代碼,callfunction這是flash控件的一個方法,類似這樣:


Delphi(Pascal) code
falshplayer1.callfunction(...........)
[/Quote]

哦,好的,我这两天有点事,过一阵再试试看。先谢啦
kye_jufei 2010-08-14
  • 打赏
  • 举报
回复
認真看一下代碼,callfunction這是flash控件的一個方法,類似這樣:

falshplayer1.callfunction(...........)
sancaoping 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 kye_jufei 的回复:]
查收...
[/Quote]

我收到了,可是feflashplayer没有callfunction函数啊!!!
fenshm 2010-08-13
  • 打赏
  • 举报
回复
学习~帮顶!
kye_jufei 2010-08-13
  • 打赏
  • 举报
回复
查收...
sancaoping 2010-08-13
  • 打赏
  • 举报
回复
hnqianli2005@126.com这是我的邮箱,谢啦
sancaoping 2010-08-12
  • 打赏
  • 举报
回复
现在把我的可用分都加上去了,够意思了吧?
kye_jufei 2010-08-12
  • 打赏
  • 举报
回复
代碼有點長,你提供一個油箱;我發給你...

 

procedure TfeFlashPlayer.LoadMovie(layer: SYSINT; const url: WideString);
var
M: TMemoryStream;
l: Integer;
fs: TFileStream;
playFileName, url2: string;
i: integer;
begin
if FFlashNotExists then Exit;

if not FFlashNotExists then
begin
if Pos('.flv', url) > 0 then
begin
M := TMemoryStream.Create;
try
M.Write(play_swf, sizeOf(play_swf));
M.Position := 0;

SetLength(playFileName, 1000);
l := GetTempPath(1000, PChar(playFileName));
SetLength(playFileName, l);
if (Length(playFileName)>0) and (playFileName[Length(playFileName)]<>'\') then
playFileName := playFileName+'\';
l := Random(1000);
while FileExists(playFileName+IntToStr(l)+'.swf') do
inc(l);
playFileName := playFileName+IntToStr(l)+'.swf';
fs := TFileStream.Create(playFileName, fmCreate);
fs.CopyFrom(M, M.Size);
fs.Free;

for i := 1 to Length(playFileName) do
if playFileName[i] = '\' then
playFileName[i] := '/';
url2 := url;
for i := 1 to Length(url2) do
if url2[i] = '\' then
url2[i] := '/';

DefaultInterface.LoadMovie(layer, playFileName + '?fileName=' + url2);

deleteFile(playFileName);
finally
M.Free;
end;
end
else
begin
DefaultInterface.LoadMovie(layer, url);
end;
SetBounds(Left, Top, Width, Height);
end;
end;

procedure TfeFlashPlayer.LoadMovieFromStream(layer: SYSINT; const Stream: TStream);
var
Sign: array [1..3] of char;
begin
Stream.Position := 0;
Stream.Read(Sign, 3);
Stream.Position := 0;
if (Sign[1] = 'F') and (Sign[2] = 'L') and (Sign[3] = 'V') then
begin
FStream.SetSize(0);
Stream.Position := 0;
FStream.CopyFrom(Stream, Stream.Size);
FStream.Position := 0;
if FStream.Size > 0 then
begin
InitFlash(true);
SetBounds(Left, Top, Width, Height);
end;
end
else
begin
FStream.SetSize(0);
Stream.Position := 0;
FStream.CopyFrom(Stream, Stream.Size);
if FStream.Size > 0 then
begin
InitFlash;
SetBounds(Left, Top, Width, Height);
end;
end;
end;

procedure TfeFlashPlayer.LoadMovieFromResource(layer: SYSINT; const ResName: WideString);
var
R: TResourceStream;
begin
R := TResourceStream.Create(0, ResName, RT_RCDATA);
if R <> nil then
LoadMovieFromStream(layer, R);
R.Free;
end;

function TfeFlashPlayer.GetIntegerProp(const Index: Integer): Integer;
var
Temp: TVarData;
begin
GetProperty(Index, Temp);
Result := Temp.VInteger;
end;

function TfeFlashPlayer.GetIsFlashAvailable: boolean;
begin
Result := not FFlashNotExists;
end;

function TfeFlashPlayer.GetIUnknownProp(const Index: Integer): IUnknown;
var
Temp: TVarData;
begin
GetProperty(Index, Temp);
Result := IUnknown(Temp.VUnknown);
end;

procedure TfeFlashPlayer.SetFlashList(const Value: TfeFlashList);
begin
FFlashList := Value;
if FFlashList = nil then FFlashIndex := -1;
FlashIndex := FlashIndex;
end;

procedure TfeFlashPlayer.SetIntegerProp(const Index, Value: Integer);
var
Temp: TVarData;
begin
Temp.VType := varInteger;
Temp.VInteger := Value;
SetProperty(Index, Temp);
end;

procedure TfeFlashPlayer.SetIUnknownProp(const Index: Integer;
const Value: IUnknown);
var
Temp: TVarData;
begin
Temp.VType := VT_UNKNOWN;
Temp.VUnknown := Pointer(Value);
SetProperty(Index, Temp);
end;

procedure TfeFlashPlayer.SetFlashIndex(const Value: integer);
var
Flash: TMemoryStream;
begin
FFlashIndex := Value;
if (FFlashList <> nil) and (FFlashList.Flashs.Count > 0) and (FFlashIndex >= 0) then
begin
if FFlashIndex < 0 then FFlashIndex := 0;
if FFlashIndex >= FFlashList.Flashs.Count - 1 then
FFlashIndex := FFlashList.Flashs.Count - 1;

if FFlashList.Flashs.Items[FFlashIndex].Flash <> nil then
begin
Flash := FFlashList.Flashs.Items[FFlashIndex].Flash;
if Flash <> nil then
begin
LoadMovieFromStream(0, Flash);
end;
end;
end
else
if FFlashIndex < 0 then
begin

end;
end;

代碼太長,省略。。。(你提供油箱,我發給你)...


sancaoping 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kye_jufei 的回复:]
補充一點,免得你走彎路:


有的第三方FLASH封裝的控件接口不完整,未提供Flash8以後提供的CallFunction(宿主程序調用flash函數)和OnFlashCall(flash調用宿主程序)的函數和事件。。。其中丟失了一些應有的方法、屬性、事件等,你可以通過自己匯出這個ocx或dll的介面檔(xxx_TLB.pas)然後比較兩者介面異同的方式補齊其中的方法、屬性、事件。。。
……
[/Quote]

谢谢楼上的详细解答,不过我想我的问题应该不在这。我用的是D7+flash(as 3.0),在delphi中的控件我用的是smartflash(v1.5),delphi中的shockwaveflash也试过。我在下载smartflash的时候还下载了一些demo,demo中的调用没有问题,代码跟我的一样,只是demo中的flash是as2.0版本的,我还用同样的方法调用了demo中的flash,结果也是成功的。我想是不是因为smartflash不支持flash as3.0版本,所以才会导致调用出错。你以前成功的例子是flash as2还是flash as3的?
kye_jufei 2010-08-11
  • 打赏
  • 举报
回复
貌似分有點少...
sancaoping 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kye_jufei 的回复:]
呵呵,問題不在這?在哪??在這:
你可能要要修改PAS文件:(代碼過長,我貼一部分吧...)



Delphi(Pascal) code
unit fe_flashplayer;

{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{.$WARN SYMBOL_PLATFORM……
[/Quote]

我是桌面系统,我以前用的是fe_flashPlayer,pas文件要怎么改?能否把改动的部分共享下?
kye_jufei 2010-08-11
  • 打赏
  • 举报
回复
呵呵,問題不在這?在哪??在這:
你可能要要修改PAS文件:(代碼過長,我貼一部分吧...)


unit fe_flashplayer;

{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{.$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{.$VARPROPSETTER ON}
interface

uses Windows, SysUtils, ActiveX, Classes, Graphics, OleCtrls, OleServer, StdVCL,
fe_flashole, fe_flashwnd, fe_stream;

const
// TypeLibrary Major and minor versions
ShockwaveFlashObjectsMajorVersion = 1;
ShockwaveFlashObjectsMinorVersion = 0;
.............................省略部分代碼.........................
CoFlashObjectInterface = class
class function Create: IFlashObjectInterface;
class function CreateRemote(const MachineName: string): IFlashObjectInterface;
end;

implementation

uses ComObj;



另外:
  你用的smartflash,它和delphi交互可試試用OnHandleFSCommand(ASender: TObject; const command, args: WideString)事件去接口交互,那麼基於WEBGIS你就可以這樣:

procedure TForm1.sfFlashPlayer1HandleFSCommand(ASender: TObject;
const command, args: WideString);

begin

if (command = 'website') and (args = 'open')
then
begin
ShellExecute(0, 'open', 'http://www.test.com', nil, nil, SW_SHOWNORMAL);
end
else
if (command = 'closeabout')
then
begin
if FLoadFromStore
then
sfFlashPlayer1.FlashIndex := StoreIndex
else
sfFlashPlayer1.LoadMovie(0, OpenDialog.FileName);
end;
end;


那麼:如果你是桌面系統,就可能要按照我上面說的做了...

kye_jufei 2010-08-10
  • 打赏
  • 举报
回复
補充一點,免得你走彎路:


有的第三方FLASH封裝的控件接口不完整,未提供Flash8以後提供的CallFunction(宿主程序調用flash函數)和OnFlashCall(flash調用宿主程序)的函數和事件。。。其中丟失了一些應有的方法、屬性、事件等,你可以通過自己匯出這個ocx或dll的介面檔(xxx_TLB.pas)然後比較兩者介面異同的方式補齊其中的方法、屬性、事件。。。





kye_jufei 2010-08-10
  • 打赏
  • 举报
回复
再把這個CALLFUNCTION說的詳細一點:

轉換成XML字串,主體的參數是以下格式


const
cstInvoke='<invoke name="%s" returntype="xml"><arguments>%s</arguments></invoke>';
其中,具體的參數如下:
a、字串以string表示
b、數值以number表示
c、Boolean類型比較特殊,直接傳遞自閉合的 <true/> 或 <false/>
d、日期類型以date表示、
e、未定義以undefined表示
f、空值以自閉和的 <null/> 表示
舉例如下:傳遞字串和Boolean類型參數
TsfFlashPlayerAsync.CallFunction(0,'<invoke name="SetFocus2Center" returntype="xml"><arguments><string>商家名稱</string><true/></arguments></invoke>')
如果傳遞字串參數,有可能會遇到XML保留關鍵字或字元,會導致XML解析失敗。
因此建議使用CDATA來保證字串出現XML的保留關鍵字或字元。
CDATA格式:<![CDATA[內容]]>
上訴例子可以改為:
TsfFlashPlayerAsync.CallFunction(0,'<invoke name="SetFocus2Center" returntype="xml"><arguments><string><![CDATA[商家名稱]]></string><true/></arguments></invoke>')

kye_jufei 2010-08-10
  • 打赏
  • 举报
回复
未指定的錯誤?樓上的,我把你叫聲大哥。。。你怎麼就不會變通一下呢???
這很明顯你的程序代碼有問題啊,我曾經利用D7+Flash的ocx方法與Flash進行編程接口,沒有遇到問題;只是最後移植到D2007的版本上,根本不起作用,原來是D2007未封閉此函數和事件。。。因此,你只能參考此Flash的ocx的SDK,研究一下XML參數字符格式並解析。。。

Flash也提供了OCX的方法接口,如果想在Delphi主动调用Flash接口,可通过CallFunction接口来调用Flash里的编程接口。

CallFunction的参数是一个字符串,根据XML字符串方式传入参数,Flash再将XML参数序列化成具体的参数类型。


经参考Flash SDK,XML参数字符串格式如下:
(強烈建議你先這段XML參數解析看懂再發言;如果看不懂,你就不知道這個“未指定的錯誤”到底是什麼?)

function __flash__arrayToXML(obj) {

var s = "<array>";

for (var i=0; i<obj.length; i++) {

s += "<property id=\"" + i + "\">" + __flash__toXML(obj[i]) + "</property>";

}

return s+"</array>";

}

function __flash__argumentsToXML(obj,index) {

var s = "<arguments>";

for (var i=index; i<obj.length; i++) {

s += __flash__toXML(obj[i]);

}

return s+"</arguments>";

}

function __flash__objectToXML(obj) {

var s = "<object>";

for (var prop in obj) {

s += "<property id=\"" + prop + "\">" + __flash__toXML(obj[prop]) + "</property>";

}

return s+"</object>";

}

function __flash__escapeXML(s) {

return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");

}

function __flash__toXML(value) {

var type = typeof(value);

if (type == "string") {

return "<string>" + __flash__escapeXML(value) + "</string>";

} else if (type == "undefined") {

return "<undefined/>";

} else if (type == "number") {

return "<number>" + value + "</number>";

} else if (value == null) {

return "<null/>";

} else if (type == "boolean") {

return value ? "<true/>" : "<false/>";

} else if (value instanceof Date) { return date + value.getTime() + /date; } else if (value instanceof Array) { return __flash__arrayToXML(value); } else if (type == object) { return __flash__objectT
  

} else if (value instanceof Date) {

return "<date>" + value.getTime() + "</date>";

} else if (value instanceof Array) {

return __flash__arrayToXML(value);

} else if (type == "object") {

return __flash__objectToXML(value);

} else {

return "<null/>"; //???

}

}

function __flash__addCallback(instance, name) {

instance[name] = function () {

return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));

}

}

function __flash__removeCallback(instance, name) {

instance[name] = null;

}

sancaoping 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kye_jufei 的回复:]
使用CallFunction傳遞變量:

應用程序(Delphi),代碼如下:


Delphi(Pascal) code
Label1.Caption := ShockwaveFlash1.CallFunction('<invoke name="myFunction"><arguments><string>SSSS</string></arguments></invoke>');
……
[/Quote]

呵呵,你跟我找的是同一个地方的代码。我之前也按上面的写过,不过也提示了未指定的错误
kye_jufei 2010-08-10
  • 打赏
  • 举报
回复
使用CallFunction傳遞變量:

應用程序(Delphi),代碼如下:

Label1.Caption :=  ShockwaveFlash1.CallFunction('<invoke name="myFunction"><arguments><string>SSSS</string></arguments></invoke>');



Flash代碼如下:

function callMe(str:String):String {
MyShowA.text = str;
return "busy signal";
}
ExternalInterface.addCallback("myFunction", callMe);



PS:XML標籤不能變...
kye_jufei 2010-08-10
  • 打赏
  • 举报
回复
我的:

Label1.Caption :=  ShockwaveFlash1.CallFunction('<invoke name="myFunction"><arguments><string>SSSS</string></arguments></invoke>');
连接数据库代码实例 1,连接数据库代码 文件名称 conn.asp 所有访问数据库的文件都调用此文件 <% db=\"data/data.mdb\" \'数据库存放目录 on error resume next set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(db) if err then err.clear set conn = Nothing response.write \"数据库连接出错,请检查conn.asp中的连接字符串。\" response.end end if function CloseDB Conn.Close set Conn=Nothing End Function %> <% dim badword badword=\"\'|and|select|update|chr|delete|%20from|;|insert|mid|master.|set|chr(37)|=\" if request.QueryString<>\"\" then chk=split(badword,\"|\") for each query_name in request.querystring for i=0 to ubound(chk) if instr(lcase(request.querystring(query_name)),chk(i))<>0 then response.write \"<script language=javascript>alert(\'传参错误!参数 \"&query_name&\" 的值中包含非法字符串!\\n\\n\');location=\'\"&request.ServerVariables(\"HTTP_REFERER\")&\"\'\" response.end end if next next end if %> ---------------------------------------------- 2。增加纪录 <% if request(\"action\")=\"add\" then name=request.form(\"name\") content=request.form(\"content\") set rs=server.createobject(\"adodb.recordset\") sql=\"select * from biao\" rs.open sql,conn,3,2 rs.addnew rs(\"name\")=name if content<>\"\" then rs(\"content\")=content else rs(\"content\")=null end if rs(\"date\")=date() rs.update rs.close set rs=nothing response.write \"<script language=javascript>alert(\'添加成功!\');location.href(\'index.asp\'); -------------------------------------- 3.显示记录 <% set rs=server.createobject(\"adodb.recordset\") sql=\"select * from biao order by id desc\" \'sql=\"select top 10 * from biao order by id desc\" rs.open sql,conn,1,1 rs.pagesize=15 \'-------设置每页显示的记录数 dim page page=request(\"page\") if page<>\"\" and IsNumeric(page) then page=clng(page) else page=1 end if n=rs.pagecount if page>n then page=clng(n) end if if rs.eof then response.write\"暂没有信息!\" \'response.end else rs.absolutepage=page end if i=0 do while not rs.eof and i --------如果是每行显示n个纪录开始---------------------------- <% do while not rs.eof and i\" end if %> --------如果是每行显示n个纪录结束----------------------------- <%=rs(\"id\")%> <% rs.movenext i=i+1 loop %> <% response.write(\"共\"&rs.recordcount&\"条信息   \") if page<>1 then response.write(\"首页 \") else response.write(\"首页 \") end if if page>1 then response.write(\"上一页 \") else response.write(\"上一页 \") end if if page下一页 \") else response.write(\"下一页 \") end if if page<>n then response.write(\"尾页 \") else response.write(\"尾页 \") end if response.write(\"   当前页:\"&page&\"/\"&n&\"\") %> 转到: ------search.asp--------------- <% if request("keyword")<>"" and request("select")<>"" then sql="select * from biao where "&request("select")&" like '%"&request("keyword")&"%'" elseif request("keyword")<>"" and request("select")="all" then sql="select * from biao where name like '%"&request("keyword")&"%' or id like '%"&request("keyword")&"%' or content like '%"&request("keyword")&"%'" else response.redirect("index.asp") end if set rs=server.createobject("adodb.recordset") rs.open sql,conn,1,1 rs.pagesize=15 '-------设置每页显示的记录数 dim page page=request("page") if page<>"" and IsNumeric(page) then page=clng(page) else page=1 end if n=rs.pagecount if page>n then page=clng(n) end if if rs.eof then response.write"查询的信息不存在或者已经删除!" 'response.end else rs.absolutepage=page end if i=0 do while not rs.eof and i <%=rs("id")%> <% rs.movenext i=i+1 loop %> ----------------------------------------- 6.有分类的纪录代码 ---------------显示分类开始--------------------------------- <% set rs=server.createobject("adodb.recordset") sql="select all * from class order by id desc" rs.open sql,conn,1,1 do while not rs.eof %> "><%=rs("classname")%> <% rs.movenext i=i+1 loop %> ---------------显示分类结束-------------------------- -------------显示现在所在分类开始------------------- <% set rs=server.createobject("adodb.recordset") sql="select top 1 * from class where classname='"&request("classname")&"'" rs.open sql,conn,1,1 do while not rs.eof %> <%=rs("classname")%> <% rs.movenext i=i+1 loop %> -----------显示现在所在分类结束---------------------- -----------显示此分类的纪录开始------------ <% set rs=server.createobject("adodb.recordset") sql="select * from biao where fenlei='"&request("classname")&"'" rs.open sql,conn,1,1 rs.pagesize=10 '-------设置每页显示的记录数 dim page page=request("page") if page<>"" and IsNumeric(page) then page=clng(page) else page=1 end if n=rs.pagecount if page>n then page=clng(n) end if if rs.bof or rs.eof then response.write"暂没有任何数据!" 'response.end else rs.absolutepage=page end if i=0 do while not rs.eof and i <%=rs("id")%> <% rs.movenext i=i+1 loop %> --------------显示此分类的纪录结束---------------- ---------删除所在分类纪录开始------------ <% if request("classname")<>"" then%> " title="删除所有本类信息?" onClick="{if (confirm('您确定要删除所有信息吗?')){return true;}return false;}">清空所有本类信息 <%end if%> if request("action")="del_fenlei" then classname=request("classname") conn.execute("delete * from biao where fenlei='"&classname&"'") CloseDB response.write"<script language='javascript'>alert('删除本类成功!');location.href('?action=manage'); upsoftpic.asp
upfile.asp <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%Server.ScriptTimeout=999%> <% if request("action")="upsoftpic" then set upload=new upload_5xsoft set file=upload.file("softpic") fileExt=lcase(right(file.filename,4)) if fileEXT<>".jpg" and fileEXT<>".gif" and fileEXT<>".rar" then '---设置上传类型 ++++fileEXT<>".***"++++++++ response.write"<script>alert('格式不对,请重新上传!');location='"&request.ServerVariables("HTTP_REFERER")&"'0 then formPath="upfile/softpic" '-------上传路径 'formPath="../upfile/softpic" if right(formPath,1)<>"/" then formPath=formPath&"/" end if vfname = filename(now()) fname = vfname & "." & GetExtendName(file.FileName) file.SaveAs Server.mappath(formPath&fname) ''保存文件 %> <script> parent.form.picurl.value+='upfile/softpic/<%=fname%>' //-上传路径 //parent.frmadd.dreamcontent.value+='[img]upload/<%=ufp%>[/img]' location.replace('Upsoftpic.asp') //---返回文件 function filename(fname) fname = now() fname = replace(fname,"-","") fname = replace(fname," ","") fname = replace(fname,":","") fname = replace(fname,"PM","") fname = replace(fname,"AM","") fname = replace(fname,"上午","") fname = replace(fname,"下午","") filename=fname end function function GetExtendName(FileName) dim ExtName ExtName = LCase(FileName) ExtName = right(ExtName,3) ExtName = right(ExtName,3-Instr(ExtName,".")) GetExtendName = ExtName end function end if %> upload.asp 删除文件和记录 <% if request("action")="manage" then call manage() end if if request("action")="edit" then id=request("id") set rs=server.createobject("adodb.recordset") sql="select * from biao where id="&id&"" rs.open sql,conn,1,1 call edit() end if if request("action")="del" then set rs=server.createobject("adodb.recordset") sql="select * from biao where id="&request("id")&"" rs.open sql,conn,3,2 set fileobj=server.createobject("scripting.filesystemobject") if fileobj.FileExists(server.mappath(""&rs("picurl"))) then fileobj.DeleteFile server.mappath(""&rs("picurl")) end if rs.delete conn.close response.write"<script language='javascript'>alert('删除成功!');location.href('?action=manage');alert('所有已成功删除!');location.href('?action=manage'); 删除文件 &struploadfiles=<%=rs("picurl")%>&action=delsoftpic" onClick="{if (confirm('您确定要删除这个吗?')){return true;}return false;}">删除 -------------------------------- --*delfile.asp内容*--- <%if request("action")="delsoftpic" then picurl=request.form("picurl") set rs=server.createobject("adodb.recordset") sql="select * from biao where id="&request("id")&"" rs.open sql,conn,3,2 rs("picurl")=null struploadfiles=trim(request.querystring("struploadfiles")) action=trim(request.querystring("action")) dim fso,arruploadfiles,i set fso = createobject("scripting.filesystemobject") fso.deletefile(server.mappath("" & struploadfiles)) set fso = nothing rs.update conn.close set rs=nothing response.write"<script language='javascript'>alert('删除成功!');location.href('edit.asp?id="&request("id")&"&action=edit'); [返回] 8。有关ubb ----------ubbcode.asp-------------- <% const ImagePath="images/emot/" function UBBCode(strContent) strContent= FilterJS(strContent) dim re dim po,ii dim reContent Set re=new RegExp re.IgnoreCase =true re.Global=True po=0 ii=0 re.Pattern="[UPLOAD=(gif|jpg|jpeg|bmp|png)](.[^[]*)(gif|jpg|jpeg|bmp)[/UPLOAD]" strContent=re.replace(strContent,"
此主题相关图片如下:
转动滚轮可缩放图片") re.Pattern="[IMG](http|https|ftp)://(.[^[]*)[/IMG]" strContent=re.replace(strContent,"转动滚轮可缩放图片;按此在新窗口浏览图片") re.Pattern="[DIR=*([0-9]*),*([0-9]*)](.[^[]*)[/DIR]" strContent=re.Replace(strContent,"shockwave/cabs/director/sw.cab#version=7,0,2,0 width=$1 height=$2>shockwave/download/ width=$1 height=$2>") re.Pattern="[QT=*([0-9]*),*([0-9]*)](.[^[]*)[/QT]" strContent=re.Replace(strContent,"") re.Pattern="[MP=*([0-9]*),*([0-9]*)](.[^[]*)[/MP]" strContent=re.Replace(strContent,"") re.Pattern="[RM=*([0-9]*),*([0-9]*)](.[^[]*)[/RM]" strContent=re.Replace(strContent,"
") re.Pattern="([FLASH])(.[^[]*)([/FLASH])" strContent= re.Replace(strContent,"点击开新窗口欣赏该<emFLASH动画! height=16 width=16>[全屏欣赏]
shockwave/cabs/flash/swflash.cab#version=5,0,0,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=500 height=400>$2") re.Pattern="([FLASH=*([0-9]*),*([0-9]*)])(.[^[]*)([/FLASH])" strContent= re.Replace(strContent,"点击开新窗口欣赏该<emFLASH动画! height=16 width=16>[全屏欣赏]
shockwave/cabs/flash/swflash.cab#version=5,0,0,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=$2 height=$3>$4") re.Pattern="([URL])(.[^[]*)([/URL])" strContent= re.Replace(strContent,"$2") re.Pattern="([URL=(.[^[]*)])(.[^[]*)([/URL])" strContent= re.Replace(strContent,"$3") re.Pattern="([EMAIL])(S+@.[^[]*)([/EMAIL])" strContent= re.Replace(strContent,"$2") re.Pattern="([EMAIL=(S+@.[^[]*)])(.[^[]*)([/EMAIL])" strContent= re.Replace(strContent,"$3") '自动识别网址 're.Pattern = "^((http|https|ftp|rtsp|mms):(//|\\)[A-Za-z0-9./=?%-&_~`@':+!]+)" 'strContent = re.Replace(strContent,"$1") 're.Pattern = "((http|https|ftp|rtsp|mms):(//|\\)[A-Za-z0-9./=?%-&_~`@':+!]+)$" 'strContent = re.Replace(strContent,"$1") 're.Pattern = "([^>=""])((http|https|ftp|rtsp|mms):(//|\\)[A-Za-z0-9./=?%-&_~`@':+!]+)" 'strContent = re.Replace(strContent,"$1$2") '自动识别www等开头的网址 're.Pattern = "([^(http://|http:\)])((www|cn)[.](w)+[.]{1,}(net|com|cn|org|cc)(((/[~]*|\[~]*)(w)+)|[.](w)+)*(((([?](w)+){1}[=]*))*((w)+){1}([&](w)+[=](w)+)*)*)" 'strContent = re.Replace(strContent,"$2") '自动识别Email地址,如打开本功能在浏览内容很多的帖子会引起服务器停顿 're.Pattern = "([^(=)])((w)+[@]{1}((w)+[.]){1,3}(w)+)" 'strContent = re.Replace(strContent,"$2") re.Pattern="[em(.[^[]*)]" strContent=re.Replace(strContent,"") re.Pattern="[HTML](.[^[]*)[/HTML]" strContent=re.Replace(strContent,"
以下内容为程序代码:
$1
") re.Pattern="[code](.[^[]*)[/code]" strContent=re.Replace(strContent,"
以下内容为程序代码:
$1
") re.Pattern="[color=(.[^[]*)](.[^[]*)[/color]" strContent=re.Replace(strContent,"$2") re.Pattern="[face=(.[^[]*)](.[^[]*)[/face]" strContent=re.Replace(strContent,"$2") re.Pattern="[align=(center|left|right)](.*)[/align]" strContent=re.Replace(strContent,"
$2
") re.Pattern="[QUOTE](.*)[/QUOTE]" strContent=re.Replace(strContent,"
$1

") re.Pattern="[fly](.*)[/fly]" strContent=re.Replace(strContent,"$1") re.Pattern="[move](.*)[/move]" strContent=re.Replace(strContent,"$1") re.Pattern="[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)](.[^[]*)[/GLOW]" strContent=re.Replace(strContent,"$4
") re.Pattern="[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)](.[^[]*)[/SHADOW]" strContent=re.Replace(strContent,"$4
") re.Pattern="[i](.[^[]*)[/i]" strContent=re.Replace(strContent,"$1") re.Pattern="[u](.[^[]*)([/u])" strContent=re.Replace(strContent,"$1") re.Pattern="[b](.[^[]*)([/b])" strContent=re.Replace(strContent,"$1") re.Pattern="[size=([1-4])](.[^[]*)[/size]" strContent=re.Replace(strContent,"$2") strContent=replace(strContent,"","") set re=Nothing UBBCode=strContent end function Function FilterJS(v) if not isnull(v) then dim t dim re dim reContent Set re=new RegExp re.IgnoreCase =true re.Global=True re.Pattern="(javascript)" t=re.Replace(v,"javascript") re.Pattern="(jscript:)" t=re.Replace(t,"jscript:") re.Pattern="(js:)" t=re.Replace(t,"js:") 're.Pattern="(value)" 't=re.Replace(t,"value") re.Pattern="(about:)" t=re.Replace(t,"about:") re.Pattern="(file:)" t=re.Replace(t,"file:") re.Pattern="(document.cookie)" t=re.Replace(t,"documents.cookie") re.Pattern="(vbscript:)" t=re.Replace(t,"vbscript:") re.Pattern="(vbs:)" t=re.Replace(t,"vbs:") re.Pattern="(on(mouse|exit|error|click|key))" t=re.Replace(t,"on$2") 're.Pattern="(&#)" 't=re.Replace(t,"&#") FilterJS=t set re=nothing end if End Function function HTMLEncode(fString) if not isnull(fString) then fString = replace(fString, ">", ">") fString = replace(fString, "<", "<") fString = Replace(fString, CHR(32), " ") fString = Replace(fString, CHR(9), " ") fString = Replace(fString, CHR(34), """) fString = Replace(fString, CHR(39), "'") fString = Replace(fString, CHR(13), "") fString = Replace(fString, CHR(10) & CHR(10), "

") fString = Replace(fString, CHR(10), "
") HTMLEncode = fString end if end function function nohtml(str) dim re Set re=new RegExp re.IgnoreCase =true re.Global=True re.Pattern="(<.[^<]*>)" str=re.replace(str," ") re.Pattern="()" str=re.replace(str," ") nohtml=str set re=nothing end function function cutStr(str,strlen) dim l,t,c l=len(str) t=0 for i=1 to l c=Abs(Asc(Mid(str,i,1))) if c>255 then t=t+2 else t=t+1 end if if t>=strlen then cutStr=left(str,i)&".." exit for else cutStr=str end if next cutStr=replace(cutStr,chr(10),"") end function %> '----------ubbcode.asp结束----------------------------- <%=left(rs("name"),6)%> <%=ubbcode(rs("content"))%> <%=Server.HTMLEncode(rs("content"))%> ----------------------字符截取开始------------------------------- <% if len(rs("name"))>10 then response.write ""&left(rs("name"),10)&".." else response.write ""&rs("name")&"" end if %> ----------------------字符截取结束--------------------------------- 9。有关后台登陆 chk.asp <% if session("admin")="" then response.redirect"index.asp" end if %> md5.asp <% Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WORD = 32 Private m_lOnBits(30) Private m_l2Power(30) Private Function LShift(lValue, iShiftBits) If iShiftBits = 0 Then LShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And 1 Then LShift = &H80000000 Else LShift = 0 End If Exit Function ElseIf iShiftBits < 0 Or iShiftBits > 31 Then Err.Raise 6 End If If (lValue And m_l2Power(31 - iShiftBits)) Then LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000 Else LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) End If End Function Private Function RShift(lValue, iShiftBits) If iShiftBits = 0 Then RShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And &H80000000 Then RShift = 1 Else RShift = 0 End If Exit Function ElseIf iShiftBits < 0 Or iShiftBits > 31 Then Err.Raise 6 End If RShift = (lValue And &H7FFFFFFE) m_l2Power(iShiftBits) If (lValue And &H80000000) Then RShift = (RShift Or (&H40000000 m_l2Power(iShiftBits - 1))) End If End Function Private Function RotateLeft(lValue, iShiftBits) RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) End Function Private Function AddUnsigned(lX, lY) Dim lX4 Dim lY4 Dim lX8 Dim lY8 Dim lResult lX8 = lX And &H80000000 lY8 = lY And &H80000000 lX4 = lX And &H40000000 lY4 = lY And &H40000000 lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF) If lX4 And lY4 Then lResult = lResult Xor &H80000000 Xor lX8 Xor lY8 ElseIf lX4 Or lY4 Then If lResult And &H40000000 Then lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8 Else lResult = lResult Xor &H40000000 Xor lX8 Xor lY8 End If Else lResult = lResult Xor lX8 Xor lY8 End If AddUnsigned = lResult End Function Private Function md5_F(x, y, z) md5_F = (x And y) Or ((Not x) And z) End Function Private Function md5_G(x, y, z) md5_G = (x And z) Or (y And (Not z)) End Function Private Function md5_H(x, y, z) md5_H = (x Xor y Xor z) End Function Private Function md5_I(x, y, z) md5_I = (y Xor (x Or (Not z))) End Function Private Sub md5_FF(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_GG(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_HH(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_II(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Function ConvertToWordArray(sMessage) Dim lMessageLength Dim lNumberOfWords Dim lWordArray() Dim lBytePosition Dim lByteCount Dim lWordCount Const MODULUS_BITS = 512 Const CONGRUENT_BITS = 448 lMessageLength = Len(sMessage) lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) BITS_TO_A_BYTE)) (MODULUS_BITS BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS BITS_TO_A_WORD) ReDim lWordArray(lNumberOfWords - 1) lBytePosition = 0 lByteCount = 0 Do Until lByteCount >= lMessageLength lWordCount = lByteCount BYTES_TO_A_WORD lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition) lByteCount = lByteCount + 1 Loop lWordCount = lByteCount BYTES_TO_A_WORD lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition) lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3) lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29) ConvertToWordArray = lWordArray End Function Private Function WordToHex(lValue) Dim lByte Dim lCount For lCount = 0 To 3 lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1) WordToHex = WordToHex & Right("0" & Hex(lByte), 2) Next End Function Public Function MD5(sMessage) m_lOnBits(0) = CLng(1) m_lOnBits(1) = CLng(3) m_lOnBits(2) = CLng(7) m_lOnBits(3) = CLng(15) m_lOnBits(4) = CLng(31) m_lOnBits(5) = CLng(63) m_lOnBits(6) = CLng(127) m_lOnBits(7) = CLng(255) m_lOnBits(8) = CLng(511) m_lOnBits(9) = CLng(1023) m_lOnBits(10) = CLng(2047) m_lOnBits(11) = CLng(4095) m_lOnBits(12) = CLng(8191) m_lOnBits(13) = CLng(16383) m_lOnBits(14) = CLng(32767) m_lOnBits(15) = CLng(65535) m_lOnBits(16) = CLng(131071) m_lOnBits(17) = CLng(262143) m_lOnBits(18) = CLng(524287) m_lOnBits(19) = CLng(1048575) m_lOnBits(20) = CLng(2097151) m_lOnBits(21) = CLng(4194303) m_lOnBits(22) = CLng(8388607) m_lOnBits(23) = CLng(16777215) m_lOnBits(24) = CLng(33554431) m_lOnBits(25) = CLng(67108863) m_lOnBits(26) = CLng(134217727) m_lOnBits(27) = CLng(268435455) m_lOnBits(28) = CLng(536870911) m_lOnBits(29) = CLng(1073741823) m_lOnBits(30) = CLng(2147483647) m_l2Power(0) = CLng(1) m_l2Power(1) = CLng(2) m_l2Power(2) = CLng(4) m_l2Power(3) = CLng(8) m_l2Power(4) = CLng(16) m_l2Power(5) = CLng(32) m_l2Power(6) = CLng(64) m_l2Power(7) = CLng(128) m_l2Power(8) = CLng(256) m_l2Power(9) = CLng(512) m_l2Power(10) = CLng(1024) m_l2Power(11) = CLng(2048) m_l2Power(12) = CLng(4096) m_l2Power(13) = CLng(8192) m_l2Power(14) = CLng(16384) m_l2Power(15) = CLng(32768) m_l2Power(16) = CLng(65536) m_l2Power(17) = CLng(131072) m_l2Power(18) = CLng(262144) m_l2Power(19) = CLng(524288) m_l2Power(20) = CLng(1048576) m_l2Power(21) = CLng(2097152) m_l2Power(22) = CLng(4194304) m_l2Power(23) = CLng(8388608) m_l2Power(24) = CLng(16777216) m_l2Power(25) = CLng(33554432) m_l2Power(26) = CLng(67108864) m_l2Power(27) = CLng(134217728) m_l2Power(28) = CLng(268435456) m_l2Power(29) = CLng(536870912) m_l2Power(30) = CLng(1073741824) Dim x Dim k Dim AA Dim BB Dim CC Dim DD Dim a Dim b Dim c Dim d Const S11 = 7 Const S12 = 12 Const S13 = 17 Const S14 = 22 Const S21 = 5 Const S22 = 9 Const S23 = 14 Const S24 = 20 Const S31 = 4 Const S32 = 11 Const S33 = 16 Const S34 = 23 Const S41 = 6 Const S42 = 10 Const S43 = 15 Const S44 = 21 x = ConvertToWordArray(sMessage) a = &H67452301 b = &HEFCDAB89 c = &H98BADCFE d = &H10325476 For k = 0 To UBound(x) Step 16 AA = a BB = b CC = c DD = d md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478 md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756 md5_FF c, d, a, b, x(k + 2), S13, &H242070DB md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A md5_FF c, d, a, b, x(k + 6), S13, &HA8304613 md5_FF b, c, d, a, x(k + 7), S14, &HFD469501 md5_FF a, b, c, d, x(k + 8), S11, &H698098D8 md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1 md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE md5_FF a, b, c, d, x(k + 12), S11, &H6B901122 md5_FF d, a, b, c, x(k + 13), S12, &HFD987193 md5_FF c, d, a, b, x(k + 14), S13, &HA679438E md5_FF b, c, d, a, x(k + 15), S14, &H49B40821 md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562 md5_GG d, a, b, c, x(k + 6), S22, &HC040B340 md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51 md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D md5_GG d, a, b, c, x(k + 10), S22, &H2441453 md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681 md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8 md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6 md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6 md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87 md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905 md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8 md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9 md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942 md5_HH d, a, b, c, x(k + 8), S32, &H8771F681 md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122 md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44 md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9 md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60 md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70 md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6 md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085 md5_HH b, c, d, a, x(k + 6), S34, &H4881D05 md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039 md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5 md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8 md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665 md5_II a, b, c, d, x(k + 0), S41, &HF4292244 md5_II d, a, b, c, x(k + 7), S42, &H432AFF97 md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7 md5_II b, c, d, a, x(k + 5), S44, &HFC93A039 md5_II a, b, c, d, x(k + 12), S41, &H655B59C3 md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92 md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D md5_II b, c, d, a, x(k + 1), S44, &H85845DD1 md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0 md5_II c, d, a, b, x(k + 6), S43, &HA3014314 md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1 md5_II a, b, c, d, x(k + 4), S41, &HF7537E82 md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235 md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB md5_II b, c, d, a, x(k + 9), S44, &HEB86D391 a = AddUnsigned(a, AA) b = AddUnsigned(b, BB) c = AddUnsigned(c, CC) d = AddUnsigned(d, DD) Next 'MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d)) MD5=LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D End Function %> index.asp(登陆页面)

log.asp <% Session.TimeOut=30 if request("action")="login" then admin=trim(request.form("admin")) for i=1 to len(admin) '用MID函数读出变量admin中i 位置的一个字符 manage=mid(admin,i,1) if manage="'" or manage="%" or manage="<" or manage=">" or manage="&" then '如果admin中含有' % < > &字符就转到出错页面 response.redirect "Error.asp" response.end end if next pwd=trim(request.form("pwd")) for i=1 to len(pwd) '用MID函数读出变量pwd中i 位置的一个字符 pass=mid(pwd,i,1) if pass="'" or pass="%" or pass="<" or pass=">" or pass="&" then '如果pass中含有' % < > &字符就转到出错页面 response.redirect "Error.asp" response.end end if next pwd=md5(pwd) if admin="" or pwd="" then Response.Redirect ("Index.asp") end if set rs=server.createobject("adodb.recordset") sql="select * from admin where admin='"&admin&"'and pwd='"&pwd&"'" rs.open sql,conn,1,1 if not rs.eof then session("admin")=admin response.redirect"main.asp" else response.redirect"Error.asp" response.end end if end if if request("action")="logout" then session("admin")="" response.redirect"../index.asp" end if %> error.asp 登陆出错,三秒钟自动返回 其它想加密的页面调用chk.asp pwd.asp修改密码 <% if request("action")="edit" then admin=trim(request.form("admin")) pwd=md5(trim(request.form("pwd"))) set rs=server.createobject("adodb.recordset") sql="select * from admin" rs.open sql,conn,3,2 rs("admin")=admin rs("pwd")=pwd rs.update set rs=nothing set conn=nothing response.write"<script language='javascript'>alert('修改成功!');location.href('Admin_Admin.asp'); ------------------------
" size="20"> " size="20">
info.asp(读取服务器基本参数) 无标题文档
恭喜:你已成功登陆后台管理!
 服务器名:  <%=Request.ServerVariables("SERVER_NAME")%>
 服务器IP:  <%=Request.ServerVariables("LOCAL_ADDR")%>
 服务器端口:  <%=Request.ServerVariables("SERVER_PORT")%>
 服务器时间:  <%=now%>
 IIS版本:  <%=Request.ServerVariables("SERVER_SOFTWARE")%>
 服务器操作系统:  <%=Request.ServerVariables("OS")%>
 脚本超时时间:  <%=Server.ScriptTimeout%> 秒
 站点物理路径:  <%=request.ServerVariables("APPL_PHYSICAL_PATH")%>
 服务器CPU数量:  <%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%> 个
 服务器解译引擎:  <%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>
 本文件路径:  <%=Request.ServerVariables("PATH_TRANSLATED")%>

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧