本章节将介绍如何让用户在点击"提交(submit)"按钮提交数据前保证所有字段正确输入。
PHP - 在表单中确保输入值
在用户点击提交按钮后,为确保字段值是否输入正确,我们在HTML的input元素中插添加PHP脚本,
各字段名为: name, email, 和 website。 在备注中的 textarea 字段中,我们将脚本放于 和 标签之间。
PHP脚本输出值为: $name, $email, $website, 和 $comment 变量。
然后,我们同样需要检查被选中的单选按钮,
对于这一点,我们
必须设置好checked属性(不是radio按钮的 value 属性) :
">名字: ">
* <?php echo $nameErr;?>
E-mail: ">
* <?php echo $emailErr;?>
网址: ">
备注: <?php echo $comment;?>
性别:
value="female">女
value="male">男
* <?php echo $genderErr;?>
PHP - 完整表单实例
以下是完整的PHP表单验证实例代码:
实例
HTML>
(php中文网)php.cn.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 表单验证实例
* 必需字段。
">名字: ">
* <?php echo $nameErr;?>
E-mail: ">
* <?php echo $emailErr;?>
网址: ">
备注: <?php echo $comment;?>
性别:
value="female">女
value="male">男
* <?php echo $genderErr;?>
echo "
您输入的内容是:
";echo $name;
echo "
";
echo $email;
echo "
";
echo $website;
echo "
";
echo $comment;
echo "
";
echo $gender;
?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例中执行结果类似如下图所示:
相关实战教程推荐:《PHP完整表单实例》