84  什麼是CGI


  • 什麼是CGI

    CGI模式,是不是一種語言。

    這是一個簡單的協議,可以用來溝通網站之間的形式和你的節目。
    CGI腳本,可以這樣寫:

    在任何一種語言能夠讀取指向stdin的流,寫入到標準輸出,並宣讀了環境變量,
    即幾乎任何編程語言,包括c , perl的,甚至外殼腳本。


    結構CGI腳本

    這裡的典型步驟順序為CGI腳本:

    1 。經過用戶的形式投入。
    2 。做你想要的資料。
    3 。寫html的反應到標準輸出。

    第一個和最後一個步驟介紹如下。


    讀取用戶的形式輸入

    當用戶提交表格,你的腳本接收表格數據作為一套名稱-值對的。
    名字是什麼,你定義在輸入標籤(或專責或textarea標籤),以及價值觀念,無論用戶在打字或選定的。 (用戶也可提交的文件形式,但這種底漆,並不包括這一點。 )


    這一套名稱-值對的,是給你作為一個一長串,你需要來解析。這不是很複雜,有很多現有的套路做給你。

    這裡的一個在perl中,一個比較簡單的一個在perl ,或者在一個長為一個更詳細的CGI框架,見perl的CGI.pm模塊。與CGI目錄,雅虎包括了許多的CGI套路(預先撰寫腳本),在各種語言的版本。


    如果說的不夠好,你直接閱讀下一節。如果你願意,而不是做你自己,或者你只是好奇,還有一長串是其中的兩種格式:

    name1=value1&name2=value2&name3=value3
    name1=value1;name2=value2;name3=value3

    那麼,解析就ampersands或分號,然後就平等的跡象。然後,做了兩句話給每個名字都與價值:

    1. Convert all ”+” characters to spaces, and
    2. Convert all ”%xx” sequences to the single character whose ascii value is ”xx”, in hex. For example, convert ”%3d” to ”=”.

    This is needed because the original long string is URL-encoded, to allow for equal signs, ampersands, and so forth in the user’s input.

    So where do you get the long string? That depends on the HTTP method the form was submitted with:

    * For GET submissions, it’s in the environment variable QUERY_STRING.
    * For POST submissions, read it from STDIN. The exact number of bytes to read is in the environment variable CONTENT_LENGTH.


    發送響應回給用戶

    首先,寫線

    Content-type: text/html\n\n

    再加上另一項空白,到標準輸出。這之後,寫下你的html響應頁到標準輸出,而且將被發送到用戶時,你的腳本是這樣做。這一切是它。

    是的,你生成的html代碼就飛。它的,並不難;它實際上相當簡單。 html的是結構設計簡單,不足以產生這樣的。

  • 更多關於:什麼是CGI

    其它 相關資訊:

  • 本文由 boy Jheng 於 酷Go夢工坊 - 部落街 2007-10-15(20:21:29)星期一 發表。

  • 【p.84 / 回上一頁/ 下一篇/ 頁首/ 頁尾 /關於 /連結


    [首頁] [活動中心] [佈告欄] [留言板] [部落街] [聊天室] [討論區] [文學殿] [搜尋] [測試區] [註冊] [紀實] [登入] 部落街文章大集合
    www.kugo.idv.tw ICON

    上一頁▲頁首