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

📄 cgiclass8.htm

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

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CGI简明简称第八章</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="85%"><font SIZE="3"><p ALIGN="JUSTIFY">CGI简明教程第八章</p>
    </font><p ALIGN="JUSTIFY"><strong><font size="2" face="宋体">Form to Mail</font></strong></p>
    <font size="2"><p ALIGN="JUSTIFY"><font face="宋体">所谓Form to Mail的功能,就是在页面上建立一个表单(form),该表单内记录着用户的信息,当用户提交了此表单,程序自动将表单内容发送的管理员所设定的信箱里。听起来这非常简单,设置根本用CGI就可以写这样的功能。当然没有这么简单,实际上许多公司网页还要求此表单在提交时存如另一个数据库,这样就需要写CGI程序了。</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">为了便于解说form to mail的功能,我们这里不考虑复杂情况,只考虑最简单的情况。就是唯一的form 
    to mail功能,其他的功能只要在程序内加入相应的程序块就可以了。</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">在Unix中,我们最多使用的就是Email网关,因为是CGI开发环境中少数几个标准unix工具之一。在CGI程序中发送e-mail的命令是mail和Sendmail。我比较喜欢sendmail,因为它功能更强,Sendmail从STDIN接受数据,遇到Eof或只包含.的一行信息就将信息发送出去。</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">Perl中使用Sendmail的一个方式是将mail内容写入一个临时文件,然后使用Cat,同时把输出管道与Sendmail命令相联系起来。</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">如:</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">open(EMAIL,”&gt;tempfile $ $,txt”);</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">print(EMAIL,”stuff to be emailed .. la la la ..\n”);</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">close(EMAIL);</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">system(“cat tempfile $ $,txt | /usr/sbin/sendmail 
    $tokens(‘email’)”);</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">system(“rm tempfile $ $,txt”);</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">名字tempfile $$,txt中的$ $是Perl中的一个特殊变量,即进程号(PID)。之所以使用是为了避免两个用户同时启动这个程序会覆盖tempfile文件,使用这种方法每个tempfile都是唯一的。(由pid表示)。这种好的思想可以用在许多程序中。</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">Sendmail命令从关联数组元素$token(‘email’)中找到e-mail目标地址,你可以假设这个变量的值在用户提交的表单由用户输入。如果没有安全措施,这样做是很危险的,设想有恶意的拥护在Web表单中给你如下地址:</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体"><a HREF="mailto:Noone@nowhere.net;cd/;rm-R">Noone@nowhere.net;cd/;rm-R</a> 
    *</font></p>
    <p ALIGN="JUSTIFY"><font face="宋体">分号是表示unix命令结束的符号并将命令提交unix命令解释器。精通web的人谁也不会在根目录运行httpd,这个例子将删除整个文件系统。所以在设计整个系统的时候,必须考虑到这种用户直接到达Shell的情况。</font></font></td>
  </tr>
  <tr>
    <td width="15%"></td>
    <td width="85%"> <p><strong><font size="2" face="宋体">Windows 下的Form to Mail</font></strong></p>
    <p><font size="2" face="宋体">很不幸,Windows没有类似于Unix的mail网关,不管是WinNt和Windows都无法做到类似的功能。当然也有些非常热心的程序员写过Dos接口的mail程序,但是相当不幸,此类程序直到现在也没有很成功的例子。它们的问题是过于占用系统资源,并非常容易被黑客攻击。所以这里我就不提供程序了。</font></td>
  </tr>
</table>

<p align="left"><font face="楷体_GB2312">
回<a href="default.html" tppabs="http://202.96.217.5/~xiaoyi/default.html">CGI教程目录</a> </p>
</body>
</html>

⌨️ 快捷键说明

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