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数组
Oct 09 PHP
PHP&amp;MYSQL服务器配置说明
Oct 09 PHP
php mysql索引问题
Jun 07 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
解析php中call_user_func_array的作用
Jun 07 PHP
php中通过curl检测页面是否被百度收录
Sep 27 PHP
PHP按行读取、处理较大CSV文件的代码实例
Apr 09 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
微信公众平台开发关注及取消关注事件的方法
Dec 23 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
Feb 15 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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绘制一个扇形的方法
2015/01/24 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
关于JavaScript中string 的replace
2013/04/12 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
2014/06/24 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python中__init__和__new__的区别详解
2014/07/09 Python
全面了解python中的类,对象,方法,属性
2016/09/11 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
社区包粽子活动方案
2014/01/21 职场文书
教师节横幅标语
2014/10/08 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript
nginx静态资源的服务器配置方法
2022/07/07 Servers
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技