📄 cgi跟我学.htm
字号:
</P><PRE>if [ ! -z "$WWW_theName" ]; then<SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客+}/kCnS`1|!Y`x</SPAN><BR><BR><SPAN style="DISPLAY: none">&]p9h:hz,i7A0</SPAN><BR><SPAN style="DISPLAY: none">~1I!N(oLV/A0</SPAN> echo "Hello, "<BR><SPAN style="DISPLAY: none">$AAc!E:|]6I'\6a|Z)V0</SPAN><BR><SPAN style="DISPLAY: none">'q;Ewc.SoX,nM#t0</SPAN><BR><SPAN style="DISPLAY: none">R'uY2P]:Xs0</SPAN> echo $WWW_theName<BR><SPAN style="DISPLAY: none">$Rx!A8Ni0n
F0</SPAN><SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客nU5E6d4A/p
e9E/z</SPAN><BR><SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客Ya
E.]z-S8Ff"T</SPAN><BR>else<BR><SPAN style="DISPLAY: none">:V)]$~AF0</SPAN><BR><SPAN style="DISPLAY: none">+rEH,PD0</SPAN><SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客#Fy*i|3o}SAS</SPAN><BR> echo "You don't have a name?"<BR><SPAN style="DISPLAY: none">j0Z{
_m'F T._5Vq0</SPAN><BR><SPAN style="DISPLAY: none">+aUg4r^j&A0</SPAN><SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客6lt-A%v _O@x6J9_ Y</SPAN><BR>fi</PRE>最后增加一个连接"go
back" . 用来返回: <PRE>echo "</P><P><A HREF="../lemay/name1.html">Go Back</A></P>"<SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客*M/P z;Z#L6C</SPAN><BR><BR><SPAN style="DISPLAY: none">2S1sXmr!C^
YL{0</SPAN><SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客;]"O5|a
K3hR\Se</SPAN><BR>echo "</BODY></HTML>"</PRE>
<CENTER>
<H3><A id=I27 name=I27
_base_href="http://www.jdon.com/idea/cgi.htm"></A><B><FONT
size=+1>问题</FONT></B></H3></CENTER>这里是使用<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>脚本比较普遍的问题:
<UL>
<LI>脚本内容只显示不执行.
<P><SPAN
style="DISPLAY: none">北京大学软件与微电子学院超级博客+_1t9n!]F0l9}1}</SPAN><BR>你正确<B
style="COLOR: black; BACKGROUND-COLOR: rgb(160,255,255)">配置</B>了你的服务器运行<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>脚本? 你的脚本是放置在<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">cgi</B>-bin目录中吗?如果你的服务器允许带.<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">cgi</B>扩展名的<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>运行,
你的脚本文件名的扩展名是这样吗? </P>
<LI>Error 500: Server doesn't support POST.
<P><BR><SPAN style="DISPLAY: none">?M$N!S-` Y O0</SPAN>
解答还是如上一条一样,然后你用命令行执行你的<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>,可以正常运行吗?是否有错误?.
</P>
<LI>Document contains no data.
<P><SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客Gf;Y
w+h;Y7ba7N</SPAN><BR>确定你的头部行和数据部之间有一空行. </P>
<LI>Error 500: Bad scrīpt Request.
<P><BR><SPAN style="DISPLAY: none">3a$l8bc9t/O X0</SPAN> 确定你的脚本是可执行的(在UNIX,
用chmod +x 你的脚本.<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">cgi</B>).
在从浏览器运行之前,你应当从命令行运行你的脚本,如果客户端是win95,可以用telnet登陆你的服务器,执行命令行,当然必须了解UNIX命令.
</P></LI></UL>
<CENTER>
<H3><A id=I28 name=I28
_base_href="http://www.jdon.com/idea/cgi.htm"></A><B><FONT size=+1><B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>变量</FONT></B></H3></CENTER>表2
总结那些环境变量.
<UL><LH></LH>
<P><B>表2. <B style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>
环境变量.</B> <SPAN style="DISPLAY: none">北京大学软件与微电子学院超级博客9d@
Lb(^9l</SPAN><BR></P></UL><BR><SPAN
style="DISPLAY: none">&vugh?]IS4Mo0</SPAN>
<TABLE border=1 _base_href="http://www.jdon.com/idea/cgi.htm">
<TBODY _base_href="http://www.jdon.com/idea/cgi.htm">
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm"><PRE><B><I>环境变量 </I></B></PRE></TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm"><PRE><B><I>意义</I></B></PRE></TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">SERVER_NAME</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm"><B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>脚本运行时的主机名和IP地址.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">SERVER_SOFTWARE</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">你的服务器的类型如: CERN/3.0 或
NCSA/1.3.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">GATEWAY_INTERFACE</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">运行的<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>版本.
对于UNIX服务器, 这是<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>/1.1.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">SERVER_PROTOCOL</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">服务器运行的HTTP协议.
这里当是HTTP/1.0.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">SERVER_PORT</TD>
<TD
_base_href="http://www.jdon.com/idea/cgi.htm">服务器运行的TCP口,通常Web服务器是80.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">REQUEST_METHOD</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">POST 或 GET,
取决于你的表单是怎样递交的.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">HTTP_ACCEPT </TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">浏览器能直接接收的Content-types,
可以有HTTP Accept header定义.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">HTTP_USER_AGENT</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">递交表单的浏览器的名称、版本
和其他平台性的附加信息。</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">HTTP_REFERER</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">递交表单的文本的
URL,不是所有的浏览器都发出这个信息,不要依赖它</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">PATH_INFO</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">附加的路径信息,
由浏览器通过GET方法发出.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">PATH_TRANSLATED</TD>
<TD
_base_href="http://www.jdon.com/idea/cgi.htm">在PATH_INFO中系统规定的路径信息.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">scrīpt_NAME</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">指向这个<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>脚本的路径,
是在URL中显示的(如, /<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">cgi</B>-bin/thescrīpt).</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">QUERY_STRING</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">脚本参数或者表单输入项(如果是用GET递交).
QUERY_STRING 包含URL中问号后面的参数.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">REMOTE_HOST</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">递交脚本的主机名,这个值不能被设置.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">REMOTE_ADDR</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">递交脚本的主机IP地址.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">REMOTE_USER</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">递交脚本的用户名.
如果服务器的authentication被激活,这个值可以设置。</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">REMOTE_IDENT</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">如果Web服务器是在ident
(一种确认用户连接你的协议)运行, 递交表单的系统也在运行ident, 这个变量就含有ident返回值.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">CONTENT_TYPE</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">如果表单是用POST递交, 这个值将是
application/x-www-form-urlencoded. 在上载文件的表单中, content-type 是个
multipart/form-data.</TD></TR>
<TR _base_href="http://www.jdon.com/idea/cgi.htm">
<TD _base_href="http://www.jdon.com/idea/cgi.htm">CONTENT_LENGTH</TD>
<TD _base_href="http://www.jdon.com/idea/cgi.htm">对于用POST递交的表单,
标准输入口的字节数.</TD></TR></TBODY></TABLE>
<CENTER>
<H3><A id=I29 name=I29
_base_href="http://www.jdon.com/idea/cgi.htm"></A><B><FONT
size=+1>表单输入的解码程序</FONT></B></H3></CENTER>目前有两个程序: 通用目的的uncgi, 和<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">cgi</B>-lib.pl,
这是个Perl库,用于perl编写的<B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">CGI</B>脚本.
<P></P>
<CENTER>当然也有表单上载时可以解码的程序,很少。 </CENTER>
<CENTER>
<H4><A id=I30 name=I30
_base_href="http://www.jdon.com/idea/cgi.htm"></A><B><FONT
size=+0>uncgi</FONT></B></H4></CENTER>
<CENTER>说明原码可以从 <A href="http://www.hyperion.com/~koreth/uncgi.html"
_base_href="http://www.jdon.com/idea/cgi.htm">http://www.hyperion.com/~koreth/uncgi.html</A>获得。
</CENTER>
<CENTER>
<H4><A id=I31 name=I31
_base_href="http://www.jdon.com/idea/cgi.htm"></A><B><FONT size=+0><B
style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">cgi</B>-lib.pl</FONT></B></H4></CENTER>这是由Steve
Brenner编写的, 帮助你管理输入. 他能从GET和POST获取输入并且放置在一个Perl列表或阵列中. 更新的版本也能处理来自表单的文件上传.
从这儿可以得
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -