Perl 網頁程式設計課程目錄

Perl Form 表單資料處理(二)

前一節已介紹過資料處理的二個步驟 :

這一節將詳細討論及體驗這二個步驟的運作.

第 一 步 : 收集表單資料

從瀏覽器接收資料. 為方便資料傳送, 資料將連結成一字串.

要明白這意思, 請在下面的表單填入你的姓名及電話號碼, 然後按 "Submit".

你當然可以填入任何資料, 但為了方便解釋, 我們假設你填入以下資料:

姓 名 : alex wu
電 話 : +852 123456

姓 名 :

電 話 :


如你在姓名填入 alex wu 及在電話填入 +852 1234567, 瀏覽器應出現 :

name=alex+wu&phone=%2B852+123456

第 一 步 解 釋 如 下 :

先前提過: 從瀏覽器接收資料. 為方便資料傳送, 資料將連結成一字串.

其實, 資料的連結是跟據以下的程序的 :

  • 所有空格會轉為加號 (+)
    例 如 : alex wu 會 變 成 alex+wu

  • 所有名稱 (name) 和值 (value) 之間以等號 (=) 連接
    例 如 : name=alex+wu

  • 非 英文字母 及非 阿拉伯數字 的符號, 會以 % 符號加上該符號的 16 進位 ASCII 碼取代.
    例 如 : "+" 的 16 進 位 ASCII 碼 為 2B, 所 以 phone=%2B852+123456

  • 如果有兩組或以上名稱和值要傳送, 則每一組之間以 & 符號連接
    例 如 : name=alex+wu&phone=%2B852+123456

可以見到, 在這個階段, 資料的閱讀性是很低的, 因為名稱和值混在一起, 同時有些字元也被編了碼.

所以, 接著來首要的工作便是分解及重整資料, 即第二步.

第 二 步 : 整理表單資料

其實第二步的工作便是分解重整資料, 即是 :

  • 分解連接兩組或以上名稱和值的 & 符號

  • 分解所有名稱 (name) 和值 (value) 之間連接的等號 (=)

  • % 符號及符號的 16 進位 ASCII 碼轉為相對的字元.

  • 所有加號 (+) 會轉為空格

這樣, 傳遞到 Perl 程式的資料便和訪客填入的資料一樣了. 你可以將資料儲存在資料庫, 及將資料顯現在瀏覽器, 叫訪客碓認資料是否無誤.

以下表單是資料處理的整個程式, 請在下面的表單填入你的姓名及電話號碼, 然後按 "Submit". 瀏覽器應出現你填入的正確資料.

姓 名 :

電 話 :

在討論這課的 Perl 程式前, 我們還需學習一些東西.

之後, 我們會詳細討論 Perl 互動表單的製作及 Perl 資料庫的建立.