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重新实现PHP脚本引擎内置函数
Mar 06 PHP
PHP 类商品秒杀计时实现代码
May 05 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
Jul 10 PHP
PHP运行模式的深入理解
Jun 03 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
PHP微信红包生成代码分享
Oct 06 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
基于laravel where的高级使用方法
Oct 10 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
PHP环境搭建最新方法
2006/09/05 PHP
PHP入门速成教程
2007/03/19 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
Javascript 跨域访问解决方案
2009/02/14 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
python清除函数占用的内存方法
2018/06/25 Python
用Python实现读写锁的示例代码
2018/11/05 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
Python PO设计模式的具体使用
2019/08/16 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
python使用建议技巧分享(三)
2020/08/18 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
优秀企业获奖感言
2014/02/01 职场文书
会议主持词
2014/03/17 职场文书
普通党员对照检查材料
2014/09/24 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python