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 相关文章推荐
生成sessionid和随机密码的例子
Oct 09 PHP
php win下Socket方式发邮件类
Aug 21 PHP
php file_exists 检查文件或目录是否存在的函数
May 10 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
PHP获取指定月份第一天和最后一天的方法
Jul 18 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
Symfony2创建页面实例详解
Mar 18 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
PHP.MVC的模板标签系统(一)
2006/09/05 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
javascript的函数
2007/01/31 Javascript
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
Python-基础-入门 简介
2014/08/09 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
python获取txt文件词向量过程详解
2019/07/05 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
python 求10个数的平均数实例
2019/12/16 Python
python中数据库like模糊查询方式
2020/03/02 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
法国体育用品商店:GO Sport
2019/10/23 全球购物
大学生涯自我鉴定
2014/01/16 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
股权投资意向书
2014/04/01 职场文书
酒店开业主持词
2015/07/02 职场文书