动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   Cgi/Perl → 阅读文章

 Cgi入门教程之:10 email子过程

作者来源: 
阅读 1094 人次 , 2006-3-29 4:02:00 


email子过程

#*****************begin body*************
print "<h1>thank you for filling out the form</h1>";

$firstname = $value[0];
$lastname = $value[1];
$email = $value[2];

print "your first name is $firstname<br>";
print "your last name is $lastname<br>";
print "your e-mail is $email<br>";

$to = $email;
$from = "clinton\@whouse.gov";
$sub = "subject of my first e-mail";
$body = "the form was filled out by $firstname $lastname
thank you goes on another line.";

&email($to,$from,$sub,$body);

#***************end body******************

--------------------------------------------------------------------------------

在上面的例子中,我在程序的body后面增加了7行。你需要拷贝这些行到test2.cgi的body中。有两种方式:

在pc上的文本编辑器中进行拷贝和粘贴,然后用ftp重新上传,这时不必重新运行chmod。
可以在unix提示符下运行emacs或pico,对文件进行修改,然后保存和退出。
这时你可以再试试form。要在testform.htm页面中输入你自己的邮件地址。当你提交这个form时,显示结果与以前一样。但如果你在几秒种后查看你的e-mail,你会看到一封来自president clinton的消息。

让我们看看这些行:

$to = $email;

- 拷贝变量$email中的内容到变量$to中。

$from = "clinton\@whouse.gov";

- 设置变量$form为clinton@whouse.gov。反斜线(\)称为escape character。@符号在perl中有特殊意义,表示一个数组,这时,如果我们不想引用数组,而只用@符号本身,需要在前面加一个"\"。

例如,如果我敲入下面这行:
$amount = "he owes me $20.00";
将得到一个错误,因为perl将试图访问一个称为$20.00的变量。我们可以这样写:
$amount = "he owes me \$20.00";

$sub = "subject of my first e-mail";
这行很直接。

$body = "the form was filled out by $firstname $lastname thank you goes on another line.";

这只是一个命令 - perl命令总以分号结束。返回的字符是赋给$body的字符串中的另一个字符。这很方便,因为可以敲入引号,然后象在字处理器中一样敲入多行文本,然后用引号结束。最后,象其它语句一样敲入引号。

也可以象这样而得到相同的结果:

$body = "the form was filled out by $firstname $lastname \n thank you goes on another line.";

\n为换行符 - 当双引号中包含\n时,把它翻译成回车符。这对email也起作用 - 它是用ascii,而不是html写的。注意html不在意源代码是在一行还是在多行。如果想在html中加入一行,需要插入一个<br>或<p>标记符。

&email($to,$from,$sub,$body);

email子过程在下面的readparse子过程中定义。它被配置成很好用,只需简单地敲入
&email( addressee , reply-to, subject, message body)

例子中也可以这样传递参数:

&email($email,"clinton\@whouse.gov","subject of my first e-mail","this is line 1 \nthis is line 2");

但是我认为分别赋值对于程序的编辑和阅读更容易。>>

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:Cgi入门教程之:11 写文件
· 下一篇:Cgi入门教程之:9 BODY部分
· 利用Perl开发Internet/Intranet应用之一
· PerlScript 的介绍之四
· 建立个人服务器脱机调试CGI脚本
· RedHat8.0 服务器无法正常运行FTP上传的CGI文件问题
· 本地调试PERL CGI程序之二


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077