CGI 程式與參數直接寫成 URL 時,為了能清楚分辨字元,在傳送前,瀏覽器會將 URL 做編碼的工作,例如:
http://www.jollen.org/guestbook/post.php?name=Chen Jin-Hong&email=jollen <jollen@o3.net>
實際上,這行 URL 會被編碼成:
http://www.jollen.idv.tw/guestbook/post.php?name=Chen+Jin-Hong&email=jollen %3Cjollen@o3.net%3E
空格的地方會以 "+" (加號) 取代,特殊字元會被轉換成對應的 ASCII 十六進位碼,所以 < 與 > 分別被編碼成 %3C 與 %3E。
當 CGI 程式讀進資料時,首要工作就是要進行解碼的工作,幸運的是,PHP 會自動幫我們做這件工作,所以我們不用擔心資料的解碼工作。
以上面的 URL 為例,在 PHP 裡,就可以經由 $name 與 $email 兩個 global 變數直接讀取傳入的資料。
--jollen