⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cgiclass7.htm

📁 cgi的基本教程
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>CGI教程第七章</title>
</head>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="85%" valign="top"><p align="center"><strong><font face="宋体">CGI教程第七章</font></strong></p>
    <p><font face="宋体"><small>上传文件是建立交互式网站的一个重要手段。一般来说,考虑到CGI程序的安全和一些敏感问题,服务器是不会轻易开放文件上传权利的。<br>
    今天的程序是由WEBSITE1.1附带的一个upload.exe程序,由VB编写而成。所以我要讲的也就是VB写WIN-CGI时候的一些问题。<br>
    <br>
    </small><strong>VB写Win-CGI:</strong><small><br>
    在Windows环境下,WEB服务器和一个Windows CGI之间是通过临时文件来传送数据的。这个过程如下:</small></font></p>
    <p><font face="宋体"><small><br>
    1.Web服务器接受一个客户机对Windows CGI程序的请求,这个请求也称为Windows 
    CGI请求。<br>
    2.Web服务器把要传送给Windows CGI程序的数据放在一个叫CGI profile的主输入文件。在某些情况下,还会增加一个文件。<br>
    3.Web服务器执行CGI程序,把CGI profile作为它的第一个参数。<br>
    4.Windows CGI开始执行,服务器等待Windows CGI进程结束。在等待过程中,服务器还可以处理其他请求,比如另一个新的CGI进程或HTTP请求。<br>
    5.Windows CGI程序读取作为命令行参数的profile文件并完成必要的处理,CGI程序也许要使用porfile文件中的数据和其他相关的辅助文件中的数据。<br>
    6.在Windows CGI程序结束前,把它的应答写在profile文件指定的输出文件中。<br>
    7.得到CGI程序处理结果后,WEB服务器读取输出文件,看看输出数据是否要打包,并把最后数据发给客户机。<br>
    8.WEB服务器随后就删除处理这个请求时产生的临时文件。如果在服务器管理器注册时,不删除临时文件,则保留这些临时文件。<br>
    <br>
    总的说,基于文件的传输过程是比较古老的。但它是最常用的通讯方式。<br>
    <br>
    </small><strong>CGI32.BAS</strong><small><br>
    CGI32.BAS是给windows系列的使用者在VB4.0或更高的环境下开发Windows-cgi而写的一个程序接口。本文假设你已经对VB编程非常熟悉,所以对于使用VB的过程我就省略不说了。在写Win-CGI程序的时候,请将VB环境中的有效对象全部关掉(Custom 
    controls),并将CGI32.bas加入project中。随后创建一个子程序</small></font></p>
    <p><em><small><font face="宋体">CGI_Main()<br>
    Sub CGI-Main()<br>
    'Win-CGI程序内容<br>
    end sub</font></small></em></p>
    <p><font face="宋体"><small><em><br>
    </em>对于CGI32.bas,如果你还没有,请在这里<a href="../../tppmsgs/msgs0.htm#41" tppabs="http://202.96.217.5/~xiaoyi/Cgi32.bas">下载</a>。<br>
    <br>
    <em>Sub Main()<br>
    On Error GoTo ErrorHandler<br>
    <br>
    If Trim$(Command$) = &quot;&quot; Then ' Interactive start<br>
    Inter_Main ' Call interactive main<br>
    Exit Sub ' Exit the program<br>
    End If<br>
    <br>
    InitializeCGI ' Create the CGI environment<br>
    <br>
    '===========<br>
    CGI_Main ' Execute the actual &quot;script&quot;<br>
    '===========<br>
    <br>
    Cleanup:<br>
    Close #CGI_OutputFN<br>
    Exit Sub ' End the program<br>
    '------------<br>
    ErrorHandler:<br>
    Select Case Err ' Decode our &quot;user defined&quot; errors<br>
    Case ERR_NO_FIELD:<br>
    ErrorString = &quot;Unknown form field&quot;<br>
    Case Else:<br>
    ErrorString = Error$ ' Must be VB error<br>
    End Select<br>
    <br>
    ErrorString = ErrorString &amp; &quot; (error #&quot; &amp; Err &amp; &quot;)&quot;<br>
    On Error GoTo 0 ' Prevent recursion<br>
    ErrorHandler (Err) ' Generate HTTP error result<br>
    Resume Cleanup<br>
    '------------<br>
    End Sub</em><br>
    <br>
    上面是一个Win-cgi的例子。<br>
    <br>
    </small><strong>upload.exe</strong><small><br>
    限于篇幅,这个程序不打算写出所有代码,只是把已经编译好的upload.exe放在这里。有兴趣的朋友可以在<a
    href="uploader.exe" tppabs="http://202.96.217.5/~xiaoyi/uploader.exe">这里下载</a>。现在后,请将upload.exe放在你的Win-CGI目录下,如果你是使用其他的Server(不是Website的话),可能在执行时候会有些麻烦,那就没有办法了。<br>
    </small></font></td>
  </tr>
</table>

回<a href="default.html" tppabs="http://202.96.217.5/~xiaoyi/default.html">CGI教程目录</a></small></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -