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模拟js函数unescape的函数代码
Oct 20 PHP
php中stream(流)的用法
Mar 25 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
php注册审核重点解析(数据访问)
May 23 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
Oct 14 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 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
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
JS中操作JSON总结
2020/12/06 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
学习python处理python编码问题
2011/03/13 Python
Python实现进程同步和通信的方法
2018/01/02 Python
python将回车作为输入内容的实例
2018/06/23 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python实现微信自动回复机器人功能
2019/07/11 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
Java servlet面试题
2012/03/04 面试题
夜大毕业自我鉴定
2013/10/11 职场文书
学雷锋演讲稿
2014/03/04 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
运动会闭幕词
2015/01/28 职场文书
上甘岭观后感
2015/06/10 职场文书