php编程每天必学之表单验证


Posted in PHP onMarch 01, 2016

本文实例讲解了php表单验证的实现方法,分享给大家供大家参考,具体内容如下

1.PHP表单处理
welcome.html

<html>
<body>
  <form action="welcome.php" method="post">
    Name: <input type="text" name="name"><br>
    E-mail: <input type="text" name="email"><br>
    <input type="submit">
  </form>
</body>
</html>

welcome.php

<html>
<body>
<!--PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)-->

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

2.PHP表单验证完整实例

<html>
<head>
</head>
<body> 

<?php
// 定义变量并设置为空值
$nameErr = $emailErr = $websiteErr = "";
$name = $email = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
   $nameErr = "姓名是必填的";
  } else {
   $name = test_input($_POST["name"]);
   // 检查姓名是否包含字母和空白字符
   //preg_match() 函数检索字符串的模式,如果模式存在则返回 true,否则返回 false。
   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 = "无效的 email 格式"; 
   }
  }
   
  if (empty($_POST["website"])) {
   $website = "";
  } else {
   $website = test_input($_POST["website"]);
   // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠)
   if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
    $websiteErr = "无效的 URL"; 
   }
  }

}

function test_input($data) {
  //去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
  $data = trim($data);
  //删除用户输入数据中的反斜杠(\)
  $data = stripslashes($data);
  //把特殊字符转换为 HTML 实体
  $data = htmlspecialchars($data);
  return $data;
}
?>

<h2>PHP 验证实例</h2>
<p><span class="error">* 必需的字段</span></p>
<!--htmlspecialchars() 函数把特殊字符转换为 HTML 实体。-->
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
  <!--value:保留表单中的值-->
  姓名:<input type="text" name="name" value="<?php echo $name;?>">
  <span class="error">* <?php echo $nameErr;?></span>
  <br><br>
  邮箱:<input type="text" name="email" value="<?php echo $email;?>">
  <span class="error">* <?php echo $emailErr;?></span>
  <br><br>
  网址:<input type="text" name="website" value="<?php echo $website;?>">
  <span class="error"><?php echo $websiteErr;?></span>
  <br><br>
  <input type="submit" name="submit" value="提交"> 
</form>

<?php
echo "<h2>您的输入:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
?>

</body>
</html>

希望本文所述对大家学习php程序设计有所帮助。

PHP 相关文章推荐
如何使用动态共享对象的模式来安装PHP
Oct 09 PHP
php 在线打包_支持子目录
Jun 28 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
php获取一个变量的名字的方法
Sep 05 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
php数组保存文本与文本反编成数组实例
Nov 13 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
php实现多城市切换特效
Aug 09 PHP
WordPress迁移时一些常见问题的解决方法整理
Nov 24 PHP
PHP is_array() 检测变量是否是数组的实现方法
Jun 13 PHP
常用PHP数组排序函数归纳
Aug 08 PHP
实例讲解PHP设计模式编程中的简单工厂模式
Feb 29 #PHP
PHP Try-catch 语句使用技巧
Feb 28 #PHP
linux下为php添加iconv模块的方法
Feb 28 #PHP
PHP中模拟链表和链表的基本操作示例
Feb 27 #PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
Feb 27 #PHP
简单谈谈PHP中strlen 函数
Feb 27 #PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 #PHP
You might like
用PHP编程开发“虚拟域名”系统
2006/10/09 PHP
php实现Mysql简易操作类
2015/10/11 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
python简单实现AES加密和解密
2019/03/28 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
英国钻石公司:British Diamond Company
2020/02/16 全球购物
教师评优事迹材料
2014/01/10 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
片区教研活动总结
2014/07/02 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis