如同 ASP 一样, PHP3.0 也可以很方便地处理 HTML 表单和变量,从表单发送过来的每个值,都会自动地根据表单的名字属性( name )赋予相应的变量值,可以直接在 PHP3 脚本中引用这些变量。这个功能在 Web 应用中使用的十分广泛,客户端的数据采集基本上都是用这种方法来实现的。下面,我们构建一个小小的自动邮件发送程序,来演示 PHP3.0 的这个功能。
下面有一个 HTML 表单的例子:
调查页面
您想知道更多的关于我们公司的信息吗?
您的姓名:
您的邮件地址:
橘子和苹果那个您更喜欢一些?
苹果 橘子
发送 ">
将这个 HTML 文件存为“ moreinfo.html ”。
你应该注意到了 FORM 的 ACTION 属性被指向 email.php3 。这个文件将包含执行服务器端命令的脚本:
email.php3 文件:
/* 这个脚本将用来处理从 moreinfo.html 文件发送过来的信息 */
PRINT "";
PRINT " 您好 , $name.";
PRINT "";
PRINT " 谢谢您的参与 ";
PRINT " 我们将向 $email 发出验证信息 ";
PRINT "";
?>
当用户在 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 的兼容性也比较好。