參考手冊

DTW_GETCOOKIE


AIX HP-UX Linux OS/2 OS/390 OS/400 PTX SUN Win NT
X X X X X X X X X

目的

傳回所指定 cookie 的值。

格式

@DTW_GETCOOKIE(IN cookie_name, OUT cookie_value)

@DTW_rGETCOOKIE(IN cookie_name)

參數

表 35. DTW_GETCOOKIE 參數
資料類型 參數 使用 說明
字串 cookie_name IN 指定 cookie 名稱的 變數或文字字串。
字串 cookie_value OUT 包含經由函數取回之 cookie 值的變數, 例如使用者狀態資訊。

OS/400 與 OS/390 使用者: 如果 cookie 值具有 URL 樣式編碼 (例如 "%20"),則 cookie 值會在傳回之前被解碼。

工作站使用者: 如果 cookie 值具有 URL 樣式編碼 (例如 "%20"), 則 cookie 值不會在傳回之前被解碼。

回覆碼

表 36. DTW_GETCOOKIE 回覆碼
回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫上傳遞的參數數目不正確。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
8000 找不到 cookie。

用法注意事項

在兩個不同的 HTTP 要求中定義並取回 cookie。 因為 cookie 只能在被傳送到從屬站以後才可看見, 如果巨集嘗試去獲得定義於相同 HTTP 要求的 cookie, 您可能會接收到不預期的結果。

範例

範例 1:取回包含使用者 ID 和密碼資訊的 cookie

@DTW_GETCOOKIE("mycookie_name_for_userID", userID)
@DTW_GETCOOKIE("mycookie_name_for_password", password)

範例 2:在收集使用者資訊之前, 決定使用者 cookie 是否存在

  %MESSAGE {
    8000 : "" : continue
%}
%HTML(welcome) {
  <html>
  <body>
  <h1>Net.Data 俱樂部</h1>
  @DTW_GETCOOKIE("NDC_name", name)
  %IF ($(RETURN_CODE) == "8000") %{ 找不到 cookie。%}
  <form method="post" action="remember">
  <p>歡迎蒞臨本會。請輸入您的姓名。<br />
  <input name="name" />
  <input type="submit" value="submit" /><br />
</form>
%ELSE
  <p>$(name),您好!歡迎再度光臨。</p>
  %ENDIF
  </body>
  </html>
  %}

HTML 歡迎使用區段會檢查 cookie NDC_name 是否存在。 如果 cookie 存在, 瀏覽器會顯示一個個人化的歡迎。 如果 cookie 不存在,套表會要求輸入使用者姓名,並將它置於 HTML remember 區段, 如此將使用者名稱設定成如下的 cookie NDC_name:

%HTML(remember) {
  <html>
  <body>
  <h1>Net.Data 俱樂部</h1>
  @DTW_SETCOOKIE("NDC_name",
                 name,
	         "expires=Wednesday, 01-Dec-2010 00:00:00;path=/")
  <p>感謝您。</p>
  <p><a href="welcome">回上一步</a></p>
  </body>
  </html>
  %}


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]