Dreamweaver 和更高版本的用戶介面已經簡化。 因此,您在 Dreamweaver 和更高版本中可能會找不到本文所描述的一些選項。 如需詳細資訊,請參閱本文。
關於動態內容來源
動態內容來源是一個資訊存放庫,您可以從中檢索並顯示要在網頁中使用的動態內容。動態內容來源不僅包含儲存在資料庫中的資訊,還包含 HTML 表單提交的值、伺服器物件中的值以及其他內容來源。
Dreamweaver 讓您可以輕鬆連線到資料庫,並建立記錄集來擷取動態內容。資料集是資料庫查詢的結果。 它會擷取您要求的特定資訊,並允許您在指定的頁面內顯示該資訊。您可以根據資料庫中的資訊和要顯示的內容來定義記錄集。
不同技術廠商可能會對記錄集使用不同的術語。在 ASP 和 ColdFusion 中,記錄集被定義為查詢。如果您使用其他資料來源 (例如使用者輸入或伺服器變數),在 Dreamweaver 中定義的資料來源名稱與資料來源名稱本身相同。
動態網站需要資料來源來檢索和顯示動態內容。Dreamweaver 讓您可以使用資料庫、請求變數、URL 變數、伺服器變數、表單變數、預存程序和其他動態內容來源。根據資料來源,您可以檢索新內容來滿足請求,或修改頁面以滿足使用者的需求。
您在 Dreamweaver 中定義的任何內容來源都會新增到「繫結」面板中的內容來源清單。然後,您可以將內容來源插入目前選取的頁面。
關於資料集
網頁無法直接存取資料庫中儲存的資料。相反地,它們與記錄集互動。記錄集是使用資料庫查詢從資料庫中擷取的資訊 (記錄) 子集。查詢是一個搜尋陳述式,用於尋找並從資料庫中擷取特定資訊。
當使用資料庫作為動態網頁的內容來源時,您必須首先建立記錄集來儲存檢索到的資料。記錄集充當儲存內容的資料庫和產生頁面的應用程式伺服器之間的中介。記錄集會暫時儲存在應用程式伺服器的記憶體中,以便更快速地檢索資料。當不再需要記錄集時,伺服器會捨棄該記錄集。
查詢可以產生一個僅包含特定欄位、特定記錄或兩者組合的記錄集。記錄集也可以包含資料庫表格的所有記錄和欄。然而,由於應用程式很少需要使用資料庫中的每筆資料,您應該努力讓記錄集盡可能小。由於網頁伺服器會暫時將記錄集保存在記憶體中,使用較小的記錄集會使用較少的記憶體,並可能改善伺服器效能。
資料庫查詢是使用結構化查詢語言 (SQL,發音為「sequel」) 撰寫,這是一種簡單的語言,可讓您從資料庫中檢索、新增和刪除資料。Dreamweaver 內建的 SQL 建立器可讓您建立簡單的查詢 而無需了解 SQL。不過,如果您想建立 複雜的 SQL 查詢,具備這種語言的基本知識可讓您 建立更進階的查詢,並在設計動態頁面方面提供更大的彈性。
在定義要與 Dreamweaver 搭配使用的記錄集之前,您必須建立與 資料庫的連線,如果尚無資料,還要在資料庫中輸入資料。 如果您尚未為網站定義資料庫連線, 請參閱您正在開發之伺服器技術的資料庫連線章節, 並遵循建立資料庫連線的指示。
關於 URL 和表單參數
URL 參數可儲存使用者輸入的擷取資訊。若要定義 URL 參數,您需建立使用 GET 方法來提交資料的表單或超文字 連結。資訊會附加到所要求頁面的 URL, 並傳達給伺服器。使用 URL 變數時,查詢字串包含一個 或多個與表單欄位相關聯的名稱值配對。 這些名稱/值的配對會附加於 URL 之後。
表單參數會儲存擷取的資訊,並將其包含在網頁的 HTTP 要求中。如果您建立使用 POST 方法的表單,表單提交的資料會傳送到伺服器。開始之前,請確定您將表單參數傳送到伺服器。
關於 Session 變數
工作階段變數可讓您儲存和顯示 在使用者造訪期間 (或工作階段) 維護的資訊。伺服器會為每個使用者建立不同的工作階段物件,並維護一段設定的時間,或直到物件明確終止為止。
由於工作階段變數在整個使用者工作階段期間持續存在, 當使用者在網站內從一個頁面移動到另一個頁面時仍會保持, 因此非常適合儲存使用者偏好設定。工作階段變數也可 用於在頁面的 HTML 代碼中插入值、為 本機變數指派值,或提供值來評估 條件運算式。
在為頁面定義工作階段變數之前,您必須在 原始碼中建立它們。在 網頁應用程式原始碼中建立工作階段變數後,您可以使用 Dreamweaver 擷取其值並在 網頁中使用。
Session 變數的運作方式
工作階段變數儲存資訊(通常是使用者提交的表單或 URL 參數),並在使用者造訪期間讓網頁應用程式的所有頁面都能使用。例如,當使用者登入提供電子郵件、Stock 報價、天氣報告和每日新聞存取權的網頁入口網站時,網頁應用程式會將登入資訊儲存在工作階段變數中,以便在整個網站的頁面中識別使用者。這讓使用者在瀏覽網站時,只能看到他們 選擇的內容類型。工作階段變數也可以提供安全機制,當帳戶在一段時間內維持非使用中狀態時,就會終止使用者的工作階段。如果使用者忘記 登出網站,這也會釋放伺服器記憶體和處理資源。
Session 變數所儲存的資訊可在使用者工作階段的存留期使用。 工作階段會在使用者開啟應用程式內的頁面時開始, 並在使用者在一段時間內未開啟應用程式中的另一個頁面時結束, 或當使用者明確終止 工作階段時結束 (通常是按一下「登出」連結)。工作階段存在時,會專屬於個別使用者,每個使用者都有獨立的工作階段。
使用工作階段變數來儲存網站應用程式中每個頁面都能存取的資訊。這些資訊可能包羅萬象,從使用者的姓名、偏好的字級,到表示使用者是否已成功登入的標幟。工作階段變數的另一個常見用途是保持累計計數,例如線上測驗中目前答對的題數,或使用者從線上目錄中選取的產品。
工作階段變數只有在使用者的瀏覽器設定為接受 Cookie 時才能發揮功能。當工作階段首次啟動時,伺服器會建立一個可唯一識別使用者的工作階段 ID 號碼,然後將包含該 ID 號碼的 Cookie 傳送到使用者的瀏覽器。當使用者要求伺服器上的其他頁面時,伺服器會讀取瀏覽器中的 Cookie 來識別使用者,並擷取儲存在伺服器記憶體中的使用者工作階段變數。
在工作階段變數中收集、儲存和擷取資訊
在建立工作階段變數之前,您必須先取得要儲存的資訊,然後將其傳送到伺服器進行儲存。您可以使用 HTML 表單或包含 URL 參數的超文字連結來收集資訊並傳送到伺服器。您也可以從儲存在使用者電腦上的 Cookie、使用者瀏覽器隨頁面要求傳送的 HTTP 頁首,或從資料庫中取得資訊。
將 URL 參數儲存在工作階段變數中的典型範例是產品目錄,該目錄使用透過連結建立的硬編碼 URL 參數,將產品資訊傳回伺服器以儲存在工作階段變數中。當使用者按一下「加入購物車」連結時,產品 ID 會儲存在工作階段變數中,讓使用者可以繼續購物。當使用者繼續到結帳 頁面時,會擷取儲存在工作階段變數中的產品 ID。
以表單為基礎的調查是在工作階段變數中儲存表單參數之頁面的典型範例。表單會將選取的資訊 傳送回伺服器,應用程式頁面會對調查進行評分, 並將回答儲存在工作階段變數中,以傳遞給可能會 統計從調查母體收集到的回答的應用程式。或者,資訊可能會儲存在資料庫中, 以供日後使用。
資訊傳送到伺服器後, 您可以透過將適當的程式碼加入 URL 或表單參數所指定的頁面中, 將資訊儲存在工作階段變數中。此頁面稱為目標頁面,會在起始頁面的 HTML 表單 action 屬性或超文字連結的 href 屬性中指定。
儲存值到工作階段變數後,您可以使用 Dreamweaver 從工作階段變數中檢索值,並在網頁應用程式中使用。在 Dreamweaver 中定義工作階段變數後,您可以在頁面中插入其值。
每個網頁的 HTML 語法如下所示:
<form action="destination.html" method="get" name="myform"> </form>
<param name="href"value="destination.html">
所使用的伺服器技術和您用來取得 資訊的方法,決定了將資訊儲存在 作業階段變數中所使用的程式碼。每種伺服器技術的基本語法 如下:
ColdFusion
<CFSET session.variable_name = value>
ASP
<% Session("variable_name") = value %>
值 運算式通常是伺服器運算式,例如 Request.Form("lastname")。例如,如果您使用名為 product 的 URL 參數(或 使用 GET 方法和名為 product 的文字欄位的 HTML 表單)來收集資訊,下列 陳述式會將資訊儲存在名為 prodID 的工作階段變數中:
ColdFusion
<CFSET session.prodID = url.product>
ASP
<% Session("prodID") = Request.QueryString("product") %>
如果 您使用 post 方法和名為 txtProduct 的文字欄位的 HTML 表單來收集資訊, 則下列陳述式會將資訊儲存在工作階段 變數中:
ColdFusion
<CFSET session.prodID = form.txtProduct>
ASP
<% Session("prodID") = Request.Form("txtProduct") %>
儲存在 工作階段變數中的資訊範例
您正在為主要客群為年長者的網站進行開發工作。在 Dreamweaver 中,在歡迎畫面上新增兩個連結,讓使用者自訂網站文字的大小。若要使用較大且易於閱讀的文字,使用者按一下一個連結;若要使用一般大小的文字,使用者按一下另一個連結。
每個連結都有一個名為 fontsize 的 URL 參數,可將使用者的文字偏好設定提交至伺服器,如以下 Adobe ColdFusion® 範例所示:
<a href="resort.cfm?fontsize=large">較大的文字</a><br>
<a href="resort.cfm?fontsize=small">一般文字</a>
將使用者的文字偏好設定儲存在工作階段變數中,並用來設定使用者要求的每個頁面上的字級。
在目標頁面頂端附近,輸入以下代碼以建立名為 font_pref 的工作階段,用來儲存使用者的字級偏好設定。
ColdFusion
<CFSET session.font_pref = url.fontsize>
ASP
<% Session("font_pref") = Request.QueryString("fontsize") %>
當 使用者按一下超文字連結時,該頁面會在 URL 參數中將使用者的文字 偏好設定傳送到目標頁面。目標頁面上的程式碼 會將 URL 參數儲存在 font_pref 工作階段 變數中。在使用者工作階段期間,應用程式的所有頁面 都會擷取此值並顯示選定的 字級。
ASP 和 ColdFusion 應用程式 變數
在 ASP 和 ColdFusion 中,您可以使用應用程式變數來儲存和顯示資訊,這些資訊在整個應用程式的生命週期內維持,並在不同使用者之間持續存在。應用程式的 期限從第一個使用者在應用程式中 要求頁面開始,到網頁伺服器停止為止。(應用程式定義為虛擬目錄及其子目錄中的所有檔案。)
由於應用程式變數會維持到應用程式的期限結束,並且從一個使用者持續到另一個使用者,因此非常適合儲存所有使用者都必須存在的資訊,例如目前的時間和日期。應用程式變數的值是在應用程式的代碼中定義的。
ASP 伺服器變數
您可以將以下 ASP 伺服器變數定義為動態內容的來源:Request.Cookie、Request.QueryString、Request.Form、Request.ServerVariables 和 Request.ClientCertificates。
ColdFusion 伺服器變數
您可以定義下列 ColdFusion 伺服器變數:
用戶端變數
建立資料與特定用戶端的關聯性。 用戶端變數會在使用者從應用程式中的一個頁面移動到另一個頁面,以及從一個工作階段移動到另一個工作階段時,維持應用程式的狀態。「維持狀態」意指在從一個頁面(或工作階段)到下一個頁面時保留資訊,以便應用程式記住使用者,以及使用者之前的選擇和偏好設定。
Cookie 變數
存取由瀏覽器傳遞到伺服器的 Cookie。
CGI 變數
提供有關執行 ColdFusion 的伺服器、要求頁面的瀏覽器,以及有關處理環境的其他資訊。
伺服器變數
可供伺服器上的所有用戶端和應用程式存取。 它們會持續存在,直到伺服器停止為止。
區域變數
使用 ColdFusion 頁面中的 CFSET 標記或 CFPARAM 標記建立。