ASP中INCLUDE包含文件“file”与“virtual”的区别
在编写ASP程序的时候,通常都会用到<!--#include virtual|file="path/filename"-->把一段相对独立的文件代码嵌套到当前页面中来。在实际的使用中很多人对"file"和"virtual"的使用不太理解,导致页面执行的时候会出现错误。现就该问题作一个简述。
使用"file"的时候,等号后面使用的是相对路径。所谓相对路径,是以当前文件所在的文件夹作为始点,通过路径搜索,得到其它文件(或文件夹)与当前文件的路径关系。使用"virtual"的时候,等号后面使用的是绝对路径。绝对路径,是以网站根目录作为始点,通过路径搜索,得到文件(或文件夹)的完整路径。
这两个定义不太好理解,举例说明:
IIS设置的站点根目录为c:\wwwroot\,
a.asp文件所在目录是c:\wwwroot\afolder,
b.asp文件所在目录是c:\wwwroot\bfolder,
c.asp文件所在目录是c:\wwwroot\afolder\cfolder,
则以a.asp作为起点寻找b.asp,所经过的路径依次为c:\wwwroot\afolder、c:\wwwroot、:\wwwroot\bfolder;
而寻找c.asp,所经过的路径就是c:\wwwroot\afolder、c:\wwwroot\afolder\cfolder。由此得出,b.asp对于a.asp的相对路径就是../bfolder;
相同的,a.asp对于b.asp的相对路径就是../afolder。
当a.asp文件需要使用"file"调用b.asp文件的时候,其语句就应该写为<!--#include file="../bfolder/b.asp"-->。
调用c.asp,其语句是<!--#include file="cfolder/c.asp"-->。
而无论什么时候,a.asp、b.asp、c.asp这三个文件的绝对路径分别是c:\wwwroot\afolder、c:\wwwroot\bfolder、c:\wwwroot\bfolder\cfolder。
因此,在a.asp文件中使用"virtual"调用另外两个文件,分别为<!--#include virtual="/bfolder/b.asp"-->和<!--#include virutal="/bfolder/cfolder/c.asp"-->。
另外需要提一下的是include与iframe的区别。前者是把一个相对独立的文件代码作为调用文件代码的一部分执行,该语句属于ASP语言,只能用于asp文件中。而iframe是单纯把一个独立的文件在调用文件中嵌套显示,两者是完全独立的,无任何关系,且iframe属于HTML语言,可在asp、htm、html等文件中调用。
相关文档:
以mysql5.1为例
先下载mysql-connector-odbc并安装
1、直接连接
conn.asp
<%
strconnection="driver={mysql odbc 5.1 driver};database=test1;server=localhost;uid=root;password=root"
set conn = server.createobject("adodb.connection")
conn.open strconnection
%>
2、DSN连接
需要先在数据源 (OD ......
<%
set conn=server.createobject("adodb.connection")
conn.connectionstring="PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER=210.76.209.130;DATABASE=databasename;UID=sa;PWD=password;"
conn.open
%>
其中 210.76.209.130 就是远程服务器的IP
二、我用VB写了个管理软件,并采取PING远程服务器域名的 ......
说在前面的话:
要防数据库木马,其实最简单不过,本人认为,网上所谓的注入方法,都是些小儿科。只要你不让数据库运行,它注入了ASP木马有何用?!只要你输出时有严格的过滤,它注入了JS代码有何用?!
具体方法如下:
一、把数据库改为ASP格式,并加入一个表,里面建个字段,加入一些IIS系统级的错误代码或Ole数据,即 ......