PHP 表单验证 - 完成表单实例

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

本节展示如何在用户提交表单后保留输入字段中的值。

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

PHP - 保留表单中的值

如需在用户点击提交按钮后在输入字段中显示值,我们在以下输入字段的 value 属性中增加了一小段 PHP 脚本:name、email 以及 website。在 comment 文本框字段中,我们把脚本放到了 <textarea> 与 </textarea> 之间。这些脚本输出 $name、$email、$website 和 $comment 变量的值。

然后,我们还需要显示选中了哪个单选按钮。对此,我们必须操作 checked 属性(而非单选按钮的 value 属性):

 1 Name: <input type="text" name="name" value="<?php echo $name;?>">
 2
 3 E-mail: <input type="text" name="email" value="<?php echo $email;?>">
 4
 5 Website: <input type="text" name="website" value="<?php echo $website;?>">
 6
 7 Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
 8
 9 Gender:
10
11 <input type="radio" name="gender"
12 <?php if (isset($gender) && $gender=="female") echo "checked";?>
13 value="female">Female
14 <input type="radio" name="gender"
15 <?php if (isset($gender) && $gender=="male") echo "checked";?>
16 value="male">Male

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

PHP - 完整的表单实例

下面是 PHP 表单验证实例的完整代码:

实例

  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      if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
 22        $nameErr = "只允许字母和空格";
 23      }
 24    }
 25
 26    if (empty($_POST["email"])) {
 27      $emailErr = "电邮是必填的";
 28    } else {
 29      $email = test_input($_POST["email"]);
 30      // 检查电子邮件地址语法是否有效
 31      if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
 32        $emailErr = "无效的 email 格式";
 33      }
 34    }
 35
 36    if (empty($_POST["website"])) {
 37      $website = "";
 38    } else {
 39      $website = test_input($_POST["website"]);
 40      // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠)
 41      if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
 42        $websiteErr = "无效的 URL";
 43      }
 44    }
 45
 46    if (empty($_POST["comment"])) {
 47      $comment = "";
 48    } else {
 49      $comment = test_input($_POST["comment"]);
 50    }
 51
 52    if (empty($_POST["gender"])) {
 53      $genderErr = "性别是必选的";
 54    } else {
 55      $gender = test_input($_POST["gender"]);
 56    }
 57 }
 58
 59 function test_input($data) {
 60    $data = trim($data);
 61    $data = stripslashes($data);
 62    $data = htmlspecialchars($data);
 63    return $data;
 64 }
 65 ?>
 66
 67 <h2>PHP 验证实例</h2>
 68 <p><span class="error">* 必需的字段</span></p>
 69 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
 70    姓名:<input type="text" name="name">
 71    <span class="error">* <?php echo $nameErr;?></span>
 72    <br><br>
 73    电邮:<input type="text" name="email">
 74    <span class="error">* <?php echo $emailErr;?></span>
 75    <br><br>
 76    网址:<input type="text" name="website">
 77    <span class="error"><?php echo $websiteErr;?></span>
 78    <br><br>
 79    评论:<textarea name="comment" rows="5" cols="40"></textarea>
 80    <br><br>
 81    性别:
 82    <input type="radio" name="gender" value="female">女性
 83    <input type="radio" name="gender" value="male">男性
 84    <span class="error">* <?php echo $genderErr;?></span>
 85    <br><br>
 86    <input type="submit" name="submit" value="提交">
 87 </form>
 88
 89 <?php
 90 echo "<h2>您的输入:</h2>";
 91 echo $name;
 92 echo "<br>";
 93 echo $email;
 94 echo "<br>";
 95 echo $website;
 96 echo "<br>";
 97 echo $comment;
 98 echo "<br>";
 99 echo $gender;
100 ?>
101
102 </body>
103 </html>

运行结果:http://www.w3school.com.cn/tiy/s.asp?f=demo_php_form_validation_escapechar

时间: 2024-08-19 07:09:16

PHP 表单验证 - 完成表单实例的相关文章

JS表单验证类HTML代码实例

以前用的比较多的一个JS表单验证类,对于个人来说已经够用了,有兴趣的可以在此基础上扩展成ajax版本.本表单验证类囊括了密码验证.英文4~10个 字符验证. 中文非空验证.大于10小于100的数字.浮点数验证.日期验证.邮件检查.网址验证.固定电话和手机号码验证.IP地址验证.邮编和QQ号码验证. MSN和身份证验证等. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

JavaScript 之表单验证(表单验证器的封装)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html>     <head>         <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>        

iview自定义表单验证 &amp;&amp;&amp; 多表单同时验证

一.自定义验证     data () { const validateSectionFileType = (rule, value, callback) => { if (value <= 0) { callback(new Error('类型不能为空')); } else { callback(); } }; const validateSectionTime = (rule, value, callback) => { if (value === '') { callback(ne

简单的JS表单验证效果代码

简单的JS表单验证代码:表单验证几乎是不可缺少的,有的表单验证是在后台完成的,有的则是使用JavaScript在在前端完成基本的验证,这样可以有效的减轻服务器的压力,下面就介绍一下JS实现的最简单的表单验证.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://w

(转)强大的JQuery表单验证插件 FormValidator使用介绍

jQuery formValidator表单验证插件是客户端表单验证插件.在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等.在这之前,页面开发者(JavaScript开发者)需要编写大量的JavaScript来进行表单元素的校验,而这些校验在平时开发中不停的重复书写.常见的校验如不能为空,必须满足长度要求,必须为数字,必须为Email等等.一般要判断的表单元素比较多,开发过程就显得枯燥无味--重复的代码不断重复,而且可能还要兼容多种浏览器,更多

jQuery Validate【为表单提供了强大的验证功能,让客户端表单验证变得更简单】

jQuery Validate jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API.所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言. 该插件是由 J?rn Zaefferer 编写和维护的,他是 jQuery 团队的一名成员,是 jQuery UI 团队的主要开发人员,是 QUn

jquery表单验证使用插件formValidator

jquery表单验证使用插件formValidator,可供有需求的朋友参考 1.首先在项目中添加必备js与css  2.代码中添加引用(必备引用) 复制代码 代码如下: <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> <!--jquery必须库--> <script src="formValidator1/for

四种表单验证方法的分析和比较

前言 任何可以交互的站点都有输入表单,只要有可能,就应该对用户输入的数据进行验证.无论服务器后端是什么样的系统,都不愿意把时间浪费在一些无效的信息上,必须对表单数据进行校验,若有不符合规定的表单输入,应及时返回并给出相应的提示信息.本文将列举四种不同原理的表单验证方法,并给出各方法在 PHP 服务器上的实现. 回页首 浏览器端验证 传统上,表单数据一般都通过浏览器端的 Javascript 验证.浏览器端的验证速度快,若有不符合要求的输入,响应信息快速的返回给用户.由于验证数据不需要提交给服务器

JavaScript之jQuery-7 jQuery 使用插件(使用插件、日历插件、表单验证插件)

一.jQuery 使用插件 插件的查找与帮助 - jQuery 官方网站的插件库(http://plugins.jquery.com) 提供了大量的插件.并给出去了每个插件的用户评级.版本及bug等 - 库中列出了每个插件的ZIP文件下载.演示.示例代码及教程 使用插件 - step 1:将插件包导入到页面中,并确保它在jQuery源文件之后 <script src="jqeury-1.11.1.js"></script> <script></