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 相关文章推荐
做个自己站内搜索引擎
Oct 09 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
PHP中集成PayPal标准支付的实现方法分享
Feb 06 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
解读PHP中上传文件的处理问题
May 29 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
tp5.1 框架查询表达式用法详解
May 25 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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查询搜索引擎排名位置的代码
2010/01/05 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
浅谈php命令行用法
2015/02/04 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Ext 今日学习总结
2010/09/19 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
2016/12/08 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
JS随机密码生成算法
2019/09/23 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
六一儿童节主持词
2014/03/21 职场文书
活动总结报告格式
2014/05/09 职场文书
律师授权委托书范本
2014/10/07 职场文书
2014年评职称工作总结
2014/11/20 职场文书
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android