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 字符转义 注意事项
May 27 PHP
深入HTTP响应状态码速查表的详解
Jun 07 PHP
php加密解密实用类分享
Jan 07 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 PHP
php实现字符串反转输出的方法
Mar 14 PHP
详解PHP中的状态模式编程
Aug 11 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
Yii框架日志操作图文与实例详解
Sep 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
php实现的读取CSV文件函数示例
2017/02/07 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
js实现漫天星星效果
2017/01/19 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
浅谈node的事件机制
2017/10/09 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
python得到电脑的开机时间方法
2018/10/15 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
python如何支持并发方法详解
2020/07/25 Python
纯CSS3发光分享按钮的实现教程
2014/09/06 HTML / CSS
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
数据库笔试题
2013/05/09 面试题
大学应届生求职简历的自我评价
2013/10/08 职场文书
服务行业个人求职的自我评价
2013/12/12 职场文书
清洁工表扬信
2014/01/08 职场文书
给学校的建议书
2014/03/12 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
先进个人推荐材料
2014/12/29 职场文书
报名委托书
2015/01/29 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
python垃圾回收机制原理分析
2022/04/13 Python
Python序列化模块JSON与Pickle
2022/06/05 Python