如果你用POST, 你可以尽可能多地使用数据, 因为这些数据从来也不分配到一个变量里.
URL 编码
theName=Ichabod+Crane&gender=male&status=missing&headless=yesURL编码遵循下列规则: 每对name/value由&符分开. 每对来自表单的name/value由=符分开. 如果用户没有输入值给这个name,那么这个name还是出现,只是无值(象这样 "name="). 任何特殊的字符(就是那些不是简单的七位ASCII,如汉字) 将以百分符%用十六进制编码. 当然也包括象 =, &, 和 % 这些特殊的字符. 在输入区中的空格将以加号+显示. 因为表单输入是用这个URL编码传递给你的脚本的,在你用这些参数之前必须解码,因为解码是个很普遍的工作,可以有很多工具做这个工作 . 你没有必要自己写这个解码程序.
这里介绍一个叫uncgi的解码程序, 你可以从http://www.hyperion.com/~koreth/uncgi.html. 得到原码,安装在你自己的cgi-bin目录下.
练习3: 告诉我你的名字.
图5. 告诉我你的名字的表单.
这个输入被发给脚本, 然后发回显示一个hello的信息(间图.6).
如果你在姓名输入处不输入任何东东,会怎样?见图7.
图6. 姓名表单的结果.
图7. 另一个结果.
修改表单的HTML
<FORM METHOD=POST ACTION="../cgi-bin/form-name"> </FORM>如果你在用uncgi从input中解码, 情况有点不同. 为了是uncgi正常工作, 你首先必须调用uncgi , 如果uncgi是个目录,加上实际的脚本名, 象这样:
<FORM METHOD=POST ACTION="../cgi-bin/uncgi/form-name"> </FORM>这样,你不必修改表单中原始的HTML; 原始的HTML可以工作得很好.
脚本
在脚本中第一步是解码,在这个例子中, 我们已经使用uncgi解码输入数据, 实际这个表单已经为你做好解码. 通过建立一个uncgi的目录,一旦表单递交给服务器,服务器会自动进行解码,这样,所有的name/value已经准备就绪等待你的使用.
现在,一个例子开始部分假设是下面这样:
echo Content-type: text/html echo echo "<HTML><HEAD>" echo "<TITLE>Hello</TITLE>" echo "</HEAD><BODY>" echo "<P>"接下来,有两种情况要处理:一件是处理用户不输入名字的情况,一个是如果输入了向他们说hello.









