IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网络编程 >> ASP技术

包含文件对数据库链接的影响

【 来源:MXSKY  更新时间:2005-10-26 | 字体:

  你注意到没有,利用MX/UD开发程序时,所有需要链接数据库的页面中,都会在页面的开始部分使用包含文件调用数据库链接文件,如:

<!--#include file="Connections/con123456.asp" -->

  那么这段代码有什么好研究的吗?当然有研究了,如果你没有正确使用它,那么也许你在本地调试很正常的程序,一旦传到服务器上就出错,一个可能的原因就是包含文件在作怪!让我们了解一下什么是包含文件:

●包含文件

全称:Server_Side Include ,从名称上一看就知道应该是服务器端的包含文件,简称 SSI.

  SSI 为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法。ASP 只使用这一机制的#include 指令。要在 .asp 文件中插入一个文件,使用下面的语法:

<!--#include virtual | file ="filename"-->

  virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称。

  被包含文件不要求专门的文件扩展名;但是,为被包含文件赋予 .inc 扩展名以便和其他类型文件相区分是一个良好的编程习惯。由于大部分虚拟主机服务商并没有设置 inc 的解释,如果填入 .inc 的文件地址,就会直接显示在浏览器源代码里。所以强烈建议在使用 include 的数据库联接文件还有包括有 asp 源代码的文件时,一定要把后缀改为 .asp

Virtual 关键字

  使用 Virtual 关键字指出路径开始于虚拟目录。例如,如果一个被命名为 Footer.inc 的文件属于一个名为 /Myapp 的虚拟目录,则下面的一行将把 Footer.inc 的内容插入到包含该行的文件中:

<!--#include virtual ="/myapp/footer.inc"-->

File 关键字

  使用 file 关键字指示使用相对路径。相对路径开始于含有该包含文件的目录。例如,如果您的文件位于目录 Myapp 中,而文件 Header1.inc 在 Myapp\Headers 中,下面的一行将把 Header1.inc 插入到您的文件中:

<!--#include file ="headers/header1.inc"-->

  注意,到被包含文件 Headers/header1.inc 的路径是相对于包含文件的;如果包含 #include 语句的脚本不在 /Myapp 目录中,那么该语句将不起作用。

特别注意:如果在 Internet 服务管理器中的“启用上层目录”选项被选中,则也可以使用 file 关键字和 ../ 语法包含父目录即上一层目录中的文件。

  但一般情况下,为了安全考虑,WEB空间服务商在设置服务器时,“启用上层目录”选项是被禁止使用的,而你利用MX/UD开发并在本地机器上调试程序时,所有需要链接数据库的页面中,都会在页面的开始部分使用包含文件调用数据库链接文件,例如:

<!--#include file="Connections/con123456.asp" -->

如果没有考虑到“包含父目录”这个问题,页面中可能会出现:

<!--#include file="../Connections/con123456.asp" -->

类似的形式,在本地数据库链接很正常(本地设置虚拟目录时,“启用上层目录”选项默认是选中状态),上传到服务器当中就会出现错误,这是初学UD/MX来开发动态网站,特别是没有ASP基础就直接利用UD/MX学习动态开发技术的朋友们容易忽视的地方。最好的方法是在本地调试程序时,将“启用上层目录”选项关闭(禁止使用),以获得和远程服务器上相同的开发环境。

设置方法如下:

  启动IIS管理器;查看你设置的虚拟目录/站点属性,在弹出的属性面板中点击主目录或虚拟目录标签,如下:

 

点击应用程序设置区当中的[配置…]按钮,弹出应用程序配置设置面板,如下图:

点击“应用程序选项”标签,将其中的“启用父目录”的钩选符号去掉。点击确定按钮返回。

被包含文件的位置

  被包含文件可以在您的 Web 站点内的某个目录中,也可以在您的 Web 站点之外。通常,您应该使被包含文件位于 Web 站点的目录中。如果一个被包含文件位于您的 Web 站点内,则当浏览器下次请求包含文件时,将显示对被包含文件的改变。但是,如果被包含文件位于您的 Web 站点之外,直到 ASP 应用程序重新启动或 Web 服务器重新启动时,这种改变才能体现出来。ASP 检测在应用程序命名空间中(在应用程序的起始目录下)的任何包含文件的改变。

包含文件:提示和警告

  一个被包含文件也可以包含其他的文件。如果 #include 指令没有导致循环,一个 .asp 文件可以多次包括同一个文件。例如,如果文件 First.asp 包含文件 Second.inc,则 Second.inc 一定不能再包含 First.asp。一个文件也不能包含自身。ASP 检测此类循环或嵌套错误,并在检测到时产生一个错误消息,同时停止处理被请求的 .asp 文件。

  ASP 在执行脚本命令之前包含文件。因此,不能用脚本命令去创建被包含文件的名称。例如,下面的脚本将不能打开 Header1.inc,因为 ASP 会在它分配一个文件名给变量 name 之前先执行 #include 指令。

<!-- This script will fail -->
<% name=(header1 & ".inc") %>
<!--#include file="<%= name %>"-->

  脚本命令和过程必须完全包含在脚本定界符 <% 和 %> 、HTML 标记 <SCRIPT> 和 </SCRIPT> 或 HTML 标记 <OBJECT> 和 </OBJECT> 中。也就是说,不能在一个 .asp 包含文件中打开一个脚本定界符,然后在一个被包含的文件中才关闭该定界符;脚本或脚本命令必须是一个完整的单元。例如,下面的脚本将无法运行:

<!-- This script will fail -->
<%
For i = 1 To n
 statements in main file
 <!--#include file="header1.inc" -->
Next
%>

下面的脚本将正常运行:

<%
For i = 1 to n
 statements in main file
%>
<!--#include file="header1.inc" -->
<% Next %>

相 关 文 章
没有相关文章
相 关 软 件
没有相关下载
逃生 放生 黄玫瑰 想太多 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 千山万水 改变自己 一定要爱你 等爱的玫瑰 陷入爱里面 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 坏女人 日不落 樱花草 为你写诗 独家记忆 夏天的味道 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 地球人都知道我爱你
假如 相思 是非题 有缘人 舍不得 我的答铃 死而无憾 外滩十八号 越爱越难过 123木头人 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.