CGI简明教程第八章
当用户提交了此表单,程序自动将表单内容发送的管理员所设定的信箱里。听起来这非常简单,设置根本 用CGI就可以写这样的功能。当然没有这么简单,实际上许多公司网页还要求此表单在提交时存如另一个 数据库,这样就需要写CGI程序了。
一的form to mail功能,其他的功能只要在程序内加入相应的程序块就可以了。
CGI程序中发送e-mail的命令是mail和Sendmail。我比较喜欢sendmail,因为它功能更强,Sendmail从 STDIN接受数据,遇到Eof或只包含.的一行信息就将信息发送出去。
管道与Sendmail命令相联系起来。 如: open(EMAIL,”>tempfile $ $,txt”); print(EMAIL,”stuff to be emailed .. la la la ..\n”); close(EMAIL); system(“cat tempfile $ $,txt | /usr/sbin/sendmail $tokens(‘email’)”); system(“rm tempfile $ $,txt”);
避免两个用户同时启动这个程序会覆盖tempfile文件,使用这种方法每个tempfile都是唯一的。(由 pid表示)。这种好的思想可以用在许多程序中。
量的值在用户提交的表单由用户输入。如果没有安全措施,这样做是很危险的,设想有恶意的拥护在 Web表单中给你如下地址: Noone@nowhere.net;cd/;rm-R*
录运行httpd,这个例子将删除整个文件系统。所以在设计整个系统的时候,必须考虑到这种用户直接到 达Shell的情况。 |
|
然也有些非常热心的程序员写过Dos接口的mail程序,但是相当不幸,此类程序直到现在也没有很成功的 例子。它们的问题是过于占用系统资源,并非常容易被黑客攻击。所以这里我就不提供程序了。 |
|