PHP 表单验证 - 必填字段

--------------------------------------------------------------------------

本节展示如何制作必填输入字段,并创建需要时所用的错误消息。

--------------------------------------------------------------------------

PHP - 输入字段

从上一节中的验证规则中,我们看到 "Name", "E-mail" 以及 "Gender" 字段是必需的。这些字段不能为空且必须在 HTML 表单中填写。

在上一节中,所有输入字段都是可选的。

在下面的代码中我们增加了一些新变量:$nameErr、$emailErr、$genderErr 以及 $websiteErr。这些错误变量会保存被请求字段的错误消息。我们还为每个 $_POST 变量添加了一个 if else 语句。这条语句检查 $_POST 变量是否为空(通过 PHP empty() 函数)。如果为空,则错误消息会存储于不同的错误变量中。如果不为空,则通过 test_input() 函数发送用户输入数据:

 1 <?php
 2 // 定义变量并设置为空值
 3 $nameErr = $emailErr = $genderErr = $websiteErr = "";
 4 $name = $email = $gender = $comment = $website = "";
 5
 6 if ($_SERVER["REQUEST_METHOD"] == "POST") {
 7   if (empty($_POST["name"])) {
 8     $nameErr = "Name is required";
 9   } else {
10     $name = test_input($_POST["name"]);
11   }
12
13   if (empty($_POST["email"])) {
14     $emailErr = "Email is required";
15   } else {
16     $email = test_input($_POST["email"]);
17   }
18
19   if (empty($_POST["website"])) {
20     $website = "";
21   } else {
22     $website = test_input($_POST["website"]);
23   }
24
25   if (empty($_POST["comment"])) {
26     $comment = "";
27   } else {
28     $comment = test_input($_POST["comment"]);
29   }
30
31   if (empty($_POST["gender"])) {
32     $genderErr = "Gender is required";
33   } else {
34     $gender = test_input($_POST["gender"]);
35   }
36 }
37 ?>

----------------------------------------------------------------------------

PHP - 显示错误消息

在 HTML 表单中,我们在每个被请求字段后面增加了一点脚本。如果需要,会生成恰当的错误消息(如果用户未填写必填字段就试图提交表单):

实例

 1 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
 2
 3 Name: <input type="text" name="name">
 4 <span class="error">* <?php echo $nameErr;?></span>
 5 <br><br>
 6 E-mail:
 7 <input type="text" name="email">
 8 <span class="error">* <?php echo $emailErr;?></span>
 9 <br><br>
10 Website:
11 <input type="text" name="website">
12 <span class="error"><?php echo $websiteErr;?></span>
13 <br><br>
14 <label>Comment: <textarea name="comment" rows="5" cols="40"></textarea>
15 <br><br>
16 Gender:
17 <input type="radio" name="gender" value="female">Female
18 <input type="radio" name="gender" value="male">Male
19 <span class="error">* <?php echo $genderErr;?></span>
20 <br><br>
21 <input type="submit" name="submit" value="Submit">
22
23 </form>

源代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <style>
 5 .error {color: #FF0000;}
 6 </style>
 7 </head>
 8 <body>
 9
10 <?php
11 // 定义变量并设置为空值
12 $nameErr = $emailErr = $genderErr = $websiteErr = "";
13 $name = $email = $gender = $comment = $website = "";
14
15 if ($_SERVER["REQUEST_METHOD"] == "POST") {
16    if (empty($_POST["name"])) {
17      $nameErr = "姓名是必填的";
18    } else {
19      $name = test_input($_POST["name"]);
20    }
21
22    if (empty($_POST["email"])) {
23      $emailErr = "电邮是必填的";
24    } else {
25      $email = test_input($_POST["email"]);
26    }
27
28    if (empty($_POST["website"])) {
29      $website = "";
30    } else {
31      $website = test_input($_POST["website"]);
32    }
33
34    if (empty($_POST["comment"])) {
35      $comment = "";
36    } else {
37      $comment = test_input($_POST["comment"]);
38    }
39
40    if (empty($_POST["gender"])) {
41      $genderErr = "性别是必选的";
42    } else {
43      $gender = test_input($_POST["gender"]);
44    }
45 }
46
47 function test_input($data) {
48    $data = trim($data);
49    $data = stripslashes($data);
50    $data = htmlspecialchars($data);
51    return $data;
52 }
53 ?>
54
55 <h2>PHP 验证实例</h2>
56 <p><span class="error">* 必需的字段</span></p>
57 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
58    姓名:<input type="text" name="name">
59    <span class="error">* <?php echo $nameErr;?></span>
60    <br><br>
61    电邮:<input type="text" name="email">
62    <span class="error">* <?php echo $emailErr;?></span>
63    <br><br>
64    网址:<input type="text" name="website">
65    <span class="error"><?php echo $websiteErr;?></span>
66    <br><br>
67    评论:<textarea name="comment" rows="5" cols="40"></textarea>
68    <br><br>
69    性别:
70    <input type="radio" name="gender" value="female">女性
71    <input type="radio" name="gender" value="male">男性
72    <span class="error">* <?php echo $genderErr;?></span>
73    <br><br>
74    <input type="submit" name="submit" value="提交">
75 </form>
76
77 <?php
78 echo "<h2>您的输入:</h2>";
79 echo $name;
80 echo "<br>";
81 echo $email;
82 echo "<br>";
83 echo $website;
84 echo "<br>";
85 echo $comment;
86 echo "<br>";
87 echo $gender;
88 ?>
89
90 </body>
91 </html>

运行结果:

接下来是验证输入数据,即“Name 字段是否只包含字母和空格?”,以及“E-mail 字段是否包含有效的电子邮件地址语法?”,并且如果填写了 Website 字段,“这个字段是否包含了有效的 URL?”。

时间: 2024-10-11 17:31:39

PHP 表单验证 - 必填字段的相关文章

表单验证必填项

在表单验证中,会有一些必填项,如手机号,密码,昵称,验证码等,如果某项为空,或格式不正确表单将无法提交.在此我只做了手机号和密码的验证,其他的与此类此 html代码: <form action="" onsubmit="return check_sub()"> <p class="tel"> <label for="tel">手机</label> <input type=&

php基础教程——表单验证(必填、提交后数据保留)

一.表单验证中用到的几个元素记录 1.htmlspecialchars(),用于将用户输入的特殊字符转义为普通字符,比如 < 和 > 之类的 HTML 字符会被替换为 < 和 > 2.$_SERVER["PHP_SELF"] 是一种超全局变量,返回当前页面脚本名字 3.trim()用于删除多余的空格等 4.stripslashes()用于删除用户多输入的反斜线 二.一个简单的表单验证函数 function test_input($str){ $str = tri

js表单建立必填字段

在填写表单时可能希望用户必须填写某些字段或者两段填写的字段相匹配,然后才能提交表单,这里就可以用js来实现 下面是建立一个基础表单的HTML代码 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset = "utf-8"> 5 <title>Password check</title> 6 <link rel="stylesheet" typ

用JavaScript进行表单验证

用户填写表单后提交,服务器端脚本会先验证数据,保证数据的正确性(比如数据是符合要求的内容.格式正确等)后再将数据交到数据库存储供以后使用.也可以在客户机上用JavaScript进行表单验证,比较快,用户操作效率较高.虽然用JavaScript进行表单验证有很多优点,不过有些用户可能会关闭浏览器JavaScript功能或者不支持JavaScript,因此在服务器端脚本的表单验证必不可少. 研究了<JavaScript基础教程 第九版>[美·Dori Smith,Tom Negrino] 一书中对

纯CSS3实现不错的表单验证效果

这是补充HTML5基础知识的系列内容,其他为: 一.HTML5-- 新的结构元素 二.HTML5-- figure.time.details.mark 三.HTML5-- details活学活用 四.HTML5-- 现存元素的变化 五.HTML5 -- Web表单 今天继续学习Web表单相关的内容,不过今天重点落实到实战中,利用HTML5表单与CSS3-UI实现一款不错的表单效果. 效果可看下面动图: 如效果演示,我们今天就通过简单几行CSS就可实现. 预备知识 1.HTML5新增的表单类型:t

(转)表单验证 - jQuery 实现

——选自<锋利的jQuery>(第2版)第5章的例题  5.1.5 表单验证 表单作为HTML最重要的一个组成部分,几乎在每个网页上都有体现,例如用户提交信息.用户反馈信息和用户查询信息等,因此它是网站管理者与浏览者之间沟通的桥梁.在表单中,表单验证的作用也是非常重要的,它能使表单更加灵活.美观和丰富.       以一个简单的用户注册为例.首先新建一个表单,HTML代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans

PHP / JavaScript / jQuery 表单验证与处理总结: 第①部分 PHP 表单验证与处理

PHP VERSION = 5.3.10 一.关于 $_REQUEST PHP 文档关于 $_REQUEST 的说明: 说明 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组. 更新日志 版本 说明 5.3.0 引入 request_order.该指令会影响 $_REQUEST 的内容. 4.3.0 $_FILES 信息被从 $_REQUEST 中移除. 4.1.0 引入 $_REQUEST. 在 php 5.3 以上版本中,php.ini 中的 request_orde

jquery-validation JQ 表单验证

jquery-validation是一款前端验证js插件,可以验证必填字段.邮件.URL.数字范围等,在表单中应用非常广泛. 官方网站 https://jqueryvalidation.org/ 下载地址:https://github.com/jquery-validation/jquery-validation/releases/tag/1.19.0 把页面下拉到底,选择第一个下载 引入关键JS <script src="../lib/jquery.js"></sc

表单验证如何定位到未填的选项

我们在做数据提交的时候经常用到表单验证,如果遇到表单元素有没填的选项,一般都会禁止表单提交 如果表单需要验证的数据比较多,有些必填的字段为空 提交不了 但是没有定位到未填项的位置  导致用户懵逼  不知道为什么提交不了 这个时候,我们可以给未填的表单项加foucs() 例如上图的代码,这样光标就可以定位到未填项 原文地址:https://www.cnblogs.com/leileilei/p/8921480.html