• <menu id="aqa2e"></menu><nav id="aqa2e"></nav>
  • <menu id="aqa2e"></menu>
    <menu id="aqa2e"></menu>
    <nav id="aqa2e"></nav>
  • <menu id="aqa2e"></menu><menu id="aqa2e"><tt id="aqa2e"></tt></menu>
    <menu id="aqa2e"><u id="aqa2e"></u></menu>
  • <nav id="aqa2e"></nav>
  • <menu id="aqa2e"></menu><menu id="aqa2e"><tt id="aqa2e"></tt></menu>
  • 安全、高速、放心的軟件下載

    包含文件對數據庫鏈接的影響

    時間:2019-05-21 09:20:36來源:不詳人氣:0

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

    網友評論
    瑞彩祥云