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-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
第五章 php数组操作
Dec 30 PHP
PHP 设计模式之观察者模式介绍
Feb 22 PHP
PHP连接sql server 2005环境配置及问题解决
Aug 08 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
Yii框架登录流程分析
Dec 03 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
PHP7 新特性详细介绍
Sep 06 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 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
域名查询代码公布
2006/10/09 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP写日志的实现方法
2014/11/05 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
vue组件生命周期详解
2017/11/07 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
使用JavaScript实现贪吃蛇游戏
2020/09/29 Javascript
python中正则表达式的使用详解
2014/10/17 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python使用range函数计算一组数和的方法
2015/05/07 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
python 除法保留两位小数点的方法
2018/07/16 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
django model通过字典更新数据实例
2020/04/01 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
python 绘制场景热力图的示例
2020/09/23 Python
python openpyxl模块的使用详解
2021/02/25 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
毕业生自我鉴定范文
2013/11/08 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
促销活动总结范文
2014/04/30 职场文书
科学发展观活动总结
2014/08/28 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
上下班时间调整通知
2015/04/23 职场文书
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android