PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入。
$_SERVER["PHP_SELF"]是超级全局变量,返回当前正在执行脚本的文件名。
$_GET 变量用于收集来自 method="get" 的表单中的值,GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。
$_POST 变量用于收集来自 method="post" 的表单中的值,默认情况下,POST 方法的发送信息的量最大值为 8 MB。
$_REQUEST 变量包含了$_GET、$_POST 和$_COOKIE 的内容,$_REQUEST变量可用来收集通过GET 和 POST方法发送的表单数据。
文本字段:
name, email, 及 website 字段为文本输入元素, comment 字段是textarea。
单选按钮:
gender 字段是单选按钮。
表单元素:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
当用户提交表单时,我们将做以下两件事情,:
-
使用 PHP trim() 函数去除用户输入数据中不必要的字符 (如:空格,tab,换行)。
-
使用PHP stripslashes()函数去除用户输入数据中的反斜杠 (\)
表单-必需字段
字段 | 验证规则 |
---|---|
Name | 必需。 + 只能包含字母和空格 |
必需。 + 必需包含一个有效的电子邮件地址(包含"@"和".") | |
Website | 可选。 如果存在,它必须包含一个有效的URL |
Comment | 可选。多行字段(文本域)。 |
Gender | 必需。 Must select one(选择一个) |
验证名称
preg_match — 进行正则表达式匹配。
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name))
{
$nameErr = "只允许字母及空格";
}
验证邮件
$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
{
$emailErr = "非法邮件地址";
}
验证地址URL
以下代码将检测URL地址是否合法 (以下正则表达式运行URL中含有破折号:"-"), 如果 URL 地址不合法,将输出错误信息:
$website = test_input($_POST["website"]);
if(!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "不合法的 URL";
}
什么是 htmlspecialchars()方法?
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
-
& (和号) 成为 &
-
" (双引号) 成为 "
-
' (单引号) 成为 '
-
< (小于) 成为 <
-
> (大于) 成为 >