来源:www.cncfan.com | 2006-1-11 | (有2306人读过)
如同 ASP 一样, PHP3.0 也可以很方便地处理 HTML 表单和变量,从表单发送过来的每个值,都会自动地根据表单的名字属性( name )赋予相应的变量值,可以直接在 PHP3 脚本中引用这些变量。这个功能在 Web 应用中使用的十分广泛,客户端的数据采集基本上都是用这种方法来实现的。下面,我们构建一个小小的自动邮件发送程序,来演示 PHP3.0 的这个功能。
下面有一个 HTML 表单的例子: < HTML> < HEAD> < TITLE> 调查页面 < /TITLE> < BODY>
< CENTER> 您想知道更多的关于我们公司的信息吗? < P> < TABLE WIDTH = 400>< TR>< TD align = right> < FORM ACTION="email.php3" METHOD="POST"> 您的姓名: < BR> < INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30"> < P> 您的邮件地址: < BR> < INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30"> < P> 橘子和苹果那个您更喜欢一些? < SELECT NAME="preference"> < OPTION value = Apples> 苹果 < OPTION value = Oranges> 橘子 < /SELECT> < P> < INPUT TYPE="submit" VALUE=" 发送 "> < /FORM> < /TD>< /TR>< /TABLE>< /CENTER> < /BODY> < /HTML>
将这个 HTML 文件存为“ moreinfo.html ”。
你应该注意到了 FORM 的 ACTION 属性被指向 email.php3 。这个文件将包含执行服务器端命令的脚本:
email.php3 文件: < ? /* 这个脚本将用来处理从 moreinfo.html 文件发送过来的信息 */ PRINT "< CENTER>"; PRINT " 您好 , $name."; PRINT "< BR>< BR>"; PRINT " 谢谢您的参与 < BR>< BR>"; PRINT " 我们将向 $email 发出验证信息 "; PRINT "< /CENTER>"; ?>
当用户在 HTML 表单中填入了姓名和 eMail 地址,并且按下了“发送”按钮,这个表单将会调用 email.php3 文件,然后这个 PHP3 脚本将会返回那些输入的信息(假设这个用户的姓名是王鹏, eMail 地址是 wp@263.net ,并且喜欢苹果):
您好,王鹏 .
谢谢您的参与
我们将向 wp@263.net 发出验证信息
但是,到现在我们的计划还没有完成,应为我们没有记录下任何的用户信息,也就不知道要如何发送这封 email 了。
解决的一个方法,是使用 PHP3.0 的 mail() 函数。
语法 : void mail(string to, string subject, string message, string add_headers);
下面解释一下这几个参数的含义:
* to - 指明邮件接受者的油箱地址。
* subject - 邮件的 subject 标题栏的内容。
* message - 邮件的 body ,也就是要发送的内容。
* add_headers - 这个参数是可选的,用它来在邮件头尾部插入一个字符串。
这样,如果把下面的这段脚本加到刚才的脚本中,插在最后一个 PRINT 语句的后面,我们就能够在显示后自动的发送邮件了: mail("$email", "Your request for information", "$namen Thank you for your interest!n We sell fresh corn daily over the Internet! Place your order at http://www.buy.com, and receive a free package of $preference!"); mail("administration@buy.com ", "Visitor request for info.", "$name requested for information.n The email address is $email. n The visitor prefers $preference."); ?>
特别要注意的是: mail() 函数只有在 SENDMAIL 也安装在服务器上的时候它才会工作。在大多数情况下, SENDMAIL 是同 PHP3.0 一起安装的。但如果 mail() 函数不能工作,就应该检查一下是否安装了 SENDMAIL 。
但是如果有很多人都发送了他们的表单,仅仅用上面的方法,是无法把这些信息一一保存的。或许,你想统计到底有多少人喜欢吃苹果,多少人喜欢吃橘子。对于这类的任务,就有可能要用到数据库来存贮这些数据了。 MySQL 可以说是现在最快的数据库服务器之一,当你的应用对速度比较敏感的时候, MySQL 是一个比较好的选择,而且,它与 PHP3.0 的兼容性也比较好。
|