转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
包含文件对数据库链接的影响         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:666 更新时间:2009/4/22 23:21:08

  你注意到没有,利用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 %>


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台