Form與CGI的綜合運用


Form的資訊如何傳遞給CGI

Example


  請告訴我你是誰?
  <BR>
  <FORM METHOD="POST" ACTION="./who.cgi">

  你的姓名是:
  <INPUT TYPE="TEXT" NAME="name" SIZE=15 MAXLENGTH=50>
  <BR>

  男生還是女生: 
  <INPUT TYPE="RADIO" NAME="sex" CHECKED VALUE="male">男
  <INPUT TYPE="RADIO" NAME="sex" VALUE="female">女
  &LT;P&GT;  
  <INPUT TYPE="SUBMIT" VALUE="我決定了">
  </FORM>
  



CGI如何將Form傳過來的資料加以解碼?


一個處理Form輸入的CGI,第一個步驟必須要將Form傳過來的資料加以「解碼」。你可以自己寫個程式將存放在QUERY_STRING (GET)或標準輸入(POST)中的[Name=Value&Name=Value....]資訊解譯出來,但....,很麻煩的。

幸好!有很多人已經寫了一些做這件事情的工具。

使用語言工具 在那裡可找到
Shcgiparse /usr/local/netscape/cgi
CshAA-1.2/usr/local/netscape/cgi
Perlcgi-lib.pl/usr/local/netscape/cgi
Perl 5CGI.pm-1.53/usr/local/netscape/cgi
C Languagencsa-default /usr/local/netscape/cgi
TCLtcl-proc-args/usr/local/src/www/cgi

CGIPARSE的使用

Example

看看例子

    #!/bin/sh
    CGI=/usr/local/netscape/cgi/cgiparse
    eval `$CGI -init`
    eval `$CGI -form`
    echo Content-type: text/html
    echo
cat << EOM <HTML><HEAD> <TITLE>我知道你是誰喔</TITLE> <BODY> <P> EOM if [ ! -z "$FORM_name" ]; then echo "Hello, " echo $FORM_name else echo "你沒有名字嗎?" fi if [ ! -z "$FORM_sex" ]; then echo "Hello, " echo $FORM_sex else echo "你是男生還是女生?" fi cat << EOM <P> <P><A HREF="./who.htm">回家囉 </A><P> </BODY></HTML> EOM