PHP 表单 – 必需字段


本章节我们将介绍如何设置表单必需字段及错误信息。


PHP – 必需字段

在上一章节我们已经介绍了表的验证规则,我们可以看到\”名字\”, \”E-mail\”, 和
\”性别\” 字段是必需的,各字段不能为空。

字段 验证规则
名字 必需。 + 只能包含字母和空格
E-mail 必需。 + 必需包含一个有效的电子邮件地址(包含\”@\”和\”.\”)
网址 可选。 如果存在,它必需包含一个有效的URL
备注 可选。多行字段(文本域)。
性别 必需。必需选择一个。

如果在前面的章节中,所有输入字段都是可选的。

在以下代码中我们加入了一些新的变量: $nameErr, $emailErr,
$genderErr, 和 $websiteErr.。这些错误变量将显示在必需字段上。 我们还为每个$_POST变量增加了一个if else语句。
这些语句将检查 $_POST 变量是 否为空(使用php的 empty() 函数)。如果为空,将显示对应的错误信息。
如果不为空,数据将传递给test_input() 函数:

<?php
// 定义变量并默认设为空值
$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 (empty($_POST[\"email\"])) {
    $emailErr = \"邮箱是必需的。\";
  } else {
    $email = test_input($_POST[\"email\"]);
  }

  if (empty($_POST[\"website\"])) {
    $website = \"\";
  } else {
    $website = test_input($_POST[\"website\"]);
  }

  if (empty($_POST[\"comment\"])) {
    $comment = \"\";
  } else {
    $comment = test_input($_POST[\"comment\"]);
  }

  if (empty($_POST[\"gender\"])) {
    $genderErr = \"性别是必需的。\";
  } else {
    $gender = test_input($_POST[\"gender\"]);
  }
}
?>

PHP – 显示错误信息

在以下的HTML实例表单中,我们为每个字段中添加了一些脚本,
各个脚本会在信息输入错误时显示错误信息。(如果用户未填写信息就提交表单则会输出错误信息):

<form method=\"post\" action=\"<?php echo htmlspecialchars($_SERVER[\'PHP_SELF\']);?>\"> 
   名字: <input type=\"text\" name=\"name\">
   <span>* <?php echo $nameErr;?></span>
   <br><br>
   E-mail: <input type=\"text\" name=\"email\">
   <span>* <?php echo $emailErr;?></span>
   <br><br>
   网址: <input type=\"text\" name=\"website\">
   <span><?php echo $websiteErr;?></span>
   <br><br>
   备注: <textarea name=\"comment\" rows=\"5\" cols=\"40\"></textarea>
   <br><br>
   性别:
   <input type=\"radio\" name=\"gender\" value=\"female\">女
   <input type=\"radio\" name=\"gender\" value=\"male\">男
   <span>* <?php echo $genderErr;?></span>
   <br><br>
   <input type=\"submit\" name=\"submit\" value=\"Submit\"> 
</form>

查看代码 »