php表单的验证详解
2021-05-02 02:29
YPE HTML>
"utf-8"
>
.error {color: #FF0000;}
// 定义变量并默认设置为空值
$nameErr
=
$emailErr
=
$genderErr
=
$websiteErr
=
""
;
$name
=
$email
=
$gender
=
$comment
=
$website
=
""
;
if
(
$_SERVER
[
"REQUEST_METHOD"
] ==
"POST"
)
{
if
(
empty
(
$_POST
[
"name"
]))
{
$nameErr
=
"名字是必需的"
;
}
else
{
$name
= test_input(
$_POST
[
"name"
]);
// 检测名字是否只包含字母跟空格
if
(!preg_match(
"/^[a-zA-Z ]*$/"
,
$name
))
{
$nameErr
=
"只允许字母和空格"
;
}
}
if
(
empty
(
$_POST
[
"email"
]))
{
$emailErr
=
"邮箱是必需的"
;
}
else
{
$email
= test_input(
$_POST
[
"email"
]);
// 检测邮箱是否合法
if
(!preg_match(
"/([\w\-]+\@[\w\-]+\.[\w\-]+)/"
,
$email
))
{
$emailErr
=
"非法邮箱格式"
;
}
}
if
(
empty
(
$_POST
[
"website"
]))
{
$website
=
""
;
}
else
{
$website
= test_input(
$_POST
[
"website"
]);
// 检测 URL 地址是否合法
if
(!preg_match(
"/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i"
,
$website
))
{
$websiteErr
=
"非法的 URL 的地址"
;
}
}
if
(
empty
(
$_POST
[
"comment"
]))
{
$comment
=
""
;
}
else
{
$comment
= test_input(
$_POST
[
"comment"
]);
}
if
(
empty
(
$_POST
[
"gender"
]))
{
$genderErr
=
"性别是必需的"
;
}
else
{
$gender
= test_input(
$_POST
[
"gender"
]);
}
}
function
test_input(
$data
)
{
$data
= trim(
$data
);
$data
=
stripslashes
(
$data
);
$data
= htmlspecialchars(
$data
);
return
$data
;
}
?>
PHP 表单验证实例
class
=
"error"
>* 必需字段。
名字:
"text"
name=
"name"
value=
""
>
class
=
"error"
>*
echo
$nameErr
;?>
E-mail:
"text"
name=
"email"
value=
""
>
class
=
"error"
>*
echo
$emailErr
;?>
网址:
"text"
name=
"website"
value=
""
>
class
=
"error"
>
echo
$websiteErr
;?>
备注:
性别:
"radio"
name=
"gender"
if
(isset(
$gender
) &&
$gender
==
"female"
)
echo
"checked"
;?> value=
"female"
>女
"radio"
name=
"gender"
if
(isset(
$gender
) &&
$gender
==
"male"
)
echo
"checked"
;?> value=
"male"
>男
class
=
"error"
>*
echo
$genderErr
;?>
"submit"
name=
"submit"
value=
"Submit"
>
echo
"
您输入的内容是:
";
echo
$name
;
echo
"
";
echo
$email
;
echo
"
";
echo
$website
;
echo
"
";
echo
$comment
;
echo
"
";
echo
$gender
;
?>