My Labs! PHP

Work is Worth Doing of Worth Doing Well.

PHP 最强大的一种特征就是它处理 HTML 窗体的方式。需要理解的重要基本概念就是任何窗体元素都将自动可用于你的 PHP 脚本。关于 PHP 使用窗体的更多信息与范例,请阅读手册部分[PHP 之外的变量]。这里是一个 HTML 窗体范例:

一个简单的 HTML 窗体
<form action="action.php" method="post">
 <p>Your name: <input type="text" name="name" /></p>
 <p>Your age: <input type="text" name="age" /></p>
 <p><input type="submit" /></p>
</form>

没有任何关于这个窗体的特别之处。它是一个没有任何特殊标记的整齐的 HTML 窗体。当用户填充这个窗体并且点击提交按钮的时候,页面 action.php 就会被调用。在这个文件中你将编写这样一些内容:

从我们的窗体中打印数据
Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> years old.

这个脚本的一个范例输出可能是:

Hi Joe. You are 22 years old.

从 htmlspecialchars() 与 (int) 部分分开,它做了什么应该很明显的。方法 htmlspecialchars() 确保任何 HTML 特殊字符适当地被编码,因此人们就无法把 HTML 标记或者 Javascript 注入到你的页面中。关于 age 字段,自从我们知道它是一个数字以来,我们只把它转换成一个整数,从而自动摆脱了任何偏离字符。你同样可以通过使用扩展名过滤来让 PHP 为你自动完成这些。变量 $_POST['name'] 与 $_POST['age'] 是 PHP 为你自动设置的。我们早期使用的是超级全局的 $_SERVER。在前面我们只引入了包含所有 POST 数据的 $_POST 超级全局。注意我们的窗体方法是怎样变成 POST 的。如果我们使用 GET 方法,那么我们的窗体信息将会出现在 $_GET 超级全局中。你同样可以使用 $_REQUEST 超级全局,如果你不关心你的请求数据来源的话。它包含了 GET,POST 以及 COOKIE 数据的被合并信息。同样参考[import_request_variables() 方法]。

你同样可以在 PHP 中处理 XForms 输入,虽然你将发现你自己有时候适合于被良好支持的 HTML 窗体。虽然操作 XForms 不太适合初学者,但是你可能会对它们感兴趣。在我们的特征部分中同样有一个[从 XForms 中处理数据的简短介绍]。

posted on 2007-03-26 18:18 Laeb 阅读(298) 评论(0)  编辑 收藏 引用 网摘 所属分类: 开始 / 简单指南