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使之能同时支持GIF和JPEG
Oct 09 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 PHP
三种php连接access数据库方法
Nov 11 PHP
PHP中常用的字符串格式化函数总结
Nov 19 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
php 无限级分类 获取顶级分类ID
Mar 13 PHP
PHP实现大数(浮点数)取余的方法
Feb 18 PHP
PHP构造二叉树算法示例
Jun 21 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
php封装的pdo数据库操作工具类与用法示例
May 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 fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
使用Python获取Linux系统的各种信息
2014/07/10 Python
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
纽约手袋品牌:KARA
2018/03/18 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
单位创先争优活动方案
2014/01/26 职场文书
《将心比心》教学反思
2014/04/08 职场文书
电台编导求职信
2014/05/06 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
新员工入职感想
2015/08/07 职场文书
Django与数据库交互的实现
2021/06/03 Python