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怎样调用MSSQL的存储过程
Oct 09 PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
php购物网站支付paypal使用方法
Nov 28 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
PHP禁止个别IP访问网站
Oct 30 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
php时间戳转换代码详解
Aug 04 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
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
python批量处理txt文件的实例代码
2020/01/13 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
中专自荐信
2013/10/13 职场文书
机电专业毕业生求职信
2013/10/27 职场文书
保安队长职务说明书
2014/02/23 职场文书
民事赔偿协议书
2014/11/02 职场文书
护士自荐信范文
2015/03/25 职场文书
债务纠纷起诉书
2015/05/20 职场文书
地道战观后感400字
2015/06/04 职场文书
边城读书笔记
2015/06/29 职场文书
会计岗位工作总结
2015/08/12 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书