iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP如何验证表单中的邮件和URL
  • 174
分享到

PHP如何验证表单中的邮件和URL

2023-06-25 12:06:36 174人浏览 薄情痞子
摘要

本篇内容介绍了“PHP如何验证表单中的邮件和URL”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正则表达式正则表达式是一种描述一段文本规则的

本篇内容介绍了“PHP如何验证表单中的邮件和URL”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

PHP如何验证表单中的邮件和URL

正则表达式

正则表达式是一种描述一段文本规则的方法,它不是精确的匹配,而是通过一些特定的符号来模糊匹配。在php中,我们使用preg_match函数来执行正则表达式的匹配,一个参数是我们的正则表达式规则,第二个参数是需要检查的文本。

preg_match函数的语法格式如下:

preg_match ( string $正则 , string $字符串 [, array &$结果] )

其中我们需要注意到的是:根据$正则变量,匹配$字符串变量。如果存在则返回匹配的个数,把匹配到的结果放到$结果变量里。如果没有匹配到结果返回0。^表示开始;$表示结束。

接下来我们通过示例来看一下正则表达式的应用:

<?php header("Content-type:text/html;charset=utf-8");    //设置编码 $str = 'date20150121'; if (preg_match('/^date/', $str)) {     echo '匹配成功'; } else {     echo '匹配失败'; } ?>

以上示例中就是在匹配以date 开始的编号。输出结果:

PHP如何验证表单中的邮件和URL

接下来我们看一下preg_matchede第三个参数是匹配的内容,通常我们会将一个空的数组传递进去,因为是传址调用,匹配结束后,数组中会得到具体匹配的内容。

我们还是通过一个示例来看一下,示例如下:

<?php header("Content-type:text/html;charset=utf-8");    //设置编码 $str = 'date20150121'; if (preg_match('/^date/', $str,$mat)) {     print_r($mat); } else {     echo '匹配失败'; } ?>

输出结果:

PHP如何验证表单中的邮件和URL

在正则表达式中字母使用\w、而数字使用\d\D表示非数字)来表示

+ 表示一个或者多个,* 表示0个或者多个,? 表示有或者没有,{n} 表示具体几位,{m, n} 表示大于m个,小于n个。

示例如下:

<?php header("Content-type:text/html;charset=utf-8");    //设置编码 $name = "zhang"; // wang zhu hu ma tan  if (preg_match('/an|hu/', $name, $arr)) {     print_r($arr); } else {     echo '匹配失败'; } ?>

输出结果:

PHP如何验证表单中的邮件和URL

使用或条件可以用来匹配字符串,如果仅仅是单个的字母或者字符,则可以使用范围表示,使用[]可以表示一个字符的取值范围'/[a0\.]/' 可以匹配包含了a或者0或者.的任意字符串。

另外,正则表达式还可以使用-来表示一组范围,[a-z] 表示小写的26个字母中的任意一个,[A-Z] 表示一个大写字母,[0-9] 表示一位十进制数。

正则表达式了解这么多,接下来我们就要来验证表单的格式是否正确了。

PHP验证名称、邮件和URL

名字的验证规则是必须的,并且只能包含字母和空格。E-mail的验证规则是必须的,其中必须是一个有效的电子邮件地址(包含'@'和'.')。网址的验证规则的是可选的,并且如果存在,它必须包含一个有效的URL。备注的验证规则是可选的,多行输入字段。性别的验证规则是必须的,必须选择一个。

那接下来我们可以通过上述中的政策表达式来写出以下代码,将通过简单的方式来检测 name 字段是否包含字母和空格,如果 name 字段值不合法,将输出错误信息,示例如下:

$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA-Z]*$/",$name)) {    $nameErr = "只允许字母和空格";}

通过上述代码便能够提示用户姓名填写的格式,接下来我们可以根据同样的方法来验证邮件和URL。

邮箱名可以是字母、数字、下划线和点组成的任意字符;邮箱要包含@符号,后面的文字按域名规则处理,以下代码将通过简单的方式来检测 e-mail 地址是否合法。如果 e-mail 地址不合法,将输出错误信息,示例如下:

$email = test_input($_POST["email"]);if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {    $emailErr = "无效的 email 格式!";}

以下代码将检测URL地址是否合法 (以下正则表达式运行URL中含有破折号:"-"), 如果 URL 地址不合法,将输出错误信息,示例如下:

$WEBsite = test_input($_POST["website"]);if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {    $websiteErr = "无效的 URL";}

将上述的验证方法添加到整体的格式中,示例如下:

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>编程网</title> </head>  <style>     .error {color: #FF0000;} </style> <body> <?php // 定义变量并设置为空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = "";  if ($_SERVER["REQUEST_METHOD"] == "POST") {     if (empty($_POST["name"])) {         $nameErr = "姓名是必填的";     } else {         $name = test_input($_POST["name"]);         // 检查姓名是否包含字母和空白字符         if (!preg_match("/^[a-zA-Z ]*$/",$name)) {             $nameErr = "只允许字母和空格";         }     }      if (empty($_POST["email"])) {         $emailErr = "电邮是必填的";     } else {         $email = test_input($_POST["email"]);         // 检查电子邮件地址语法是否有效         if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$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";         }     }      if (empty($_POST["comment"])) {         $comment = "";     } else {         $comment = test_input($_POST["comment"]);     }      if (empty($_POST["gender"])) {         $genderErr = "性别是必选的";     } else {         $gender = test_input($_POST["gender"]);     } }  function test_input($data) {     $data = trim($data);     $data = stripslashes($data);     $data = htmlspecialchars($data);     return $data; } ?>  <h3>PHP 验证实例</h3> <p><span class="error">* 必需的字段</span></p> <fORM method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">     姓名:<input type="text" name="name">     <span class="error">* <?php echo $nameErr;?></span>     <br><br>     邮箱:<input type="text" name="email">     <span class="error">* <?php echo $emailErr;?></span>     <br><br>     网址:<input type="text" name="website">     <span class="error"><?php echo $websiteErr;?></span>     <br><br>     评论:<textarea name="comment" rows="5" cols="40"></textarea>     <br><br>     性别:     <input type="radio" name="gender" value="female">女性     <input type="radio" name="gender" value="male">男性     <span class="error">* <?php echo $genderErr;?></span>     <br><br>     <input type="submit" name="submit" value="提交"> </form>  <?php echo "<h3>您的输入:</h3>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?>  </body> </html>

通过上述代码,当我们没有按照我们设置的规则填写的话,输出结果如下:

PHP如何验证表单中的邮件和URL

当然作为扩展知识,也可以使用弹窗,只需要在上述示例中的代码做些改动,将输出的字符变成弹窗的格式,示例如下:

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>编程网</title> </head>  <style>     .error {color: #FF0000;} </style> <body> <?php // 定义变量并设置为空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") {     if (empty($_POST["name"])) {         $nameErr = "<script language=\"javascript\">        {        alert(\"姓名是必填的\"); //弹出对话框        }        </script>";     } else {         $name = test_input($_POST["name"]);         if (!preg_match("/^[a-zA-Z ]*$/",$name)) {             $nameErr = "<script language=\"javascript\">            {            alert(\"姓名只允许字母和空格\"); //弹出对话框            }            </script>";         }     }     if (empty($_POST["email"])) {         $emailErr = "<script language=\"javascript\">        {        alert(\"电邮是必填的\"); //弹出对话框        }        </script>";     } else {         $email = test_input($_POST["email"]);         // 检查电子邮件地址语法是否有效         if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {             $emailErr = "<script language=\"javascript\">            {            alert(\"无效email的格式\"); //弹出对话框            }            </script>";         }     }     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 = "<script language=\"javascript\">            {            alert(\"无效的URL\"); //弹出对话框            }            </script>";         }     }     if (empty($_POST["comment"])) {         $comment = "";     } else {         $comment = test_input($_POST["comment"]);     }     if (empty($_POST["gender"])) {         $genderErr = "<script language=\"javascript\">        {        alert(\"性别是必选的\"); //弹出对话框        }        </script>";     } else {         $gender = test_input($_POST["gender"]);     } } function test_input($data) {     $data = trim($data);     $data = stripslashes($data);     $data = htmlspecialchars($data);     return $data; } ?> <h3>PHP 验证实例</h3> <p><span class="error">* 必需的字段</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">     姓名:<input type="text" name="name">     <span class="error">* <?php echo $nameErr;?></span>     <br><br>     邮箱:<input type="text" name="email">     <span class="error">* <?php echo $emailErr;?></span>     <br><br>     网址:<input type="text" name="website">     <span class="error"><?php echo $websiteErr;?></span>     <br><br>     评论:<textarea name="comment" rows="5" cols="40"></textarea>     <br><br>     性别:     <input type="radio" name="gender" value="female">女性     <input type="radio" name="gender" value="male">男性     <span class="error">* <?php echo $genderErr;?></span>     <br><br>     <input type="submit" name="submit" value="提交"> </form>  <?php echo "<h3>您的输入:</h3>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?>  </body> </html>

当填写内容不按规定规则是,点击提交,输出结果如下:

PHP如何验证表单中的邮件和URL

PHP如何验证表单中的邮件和URL

PHP如何验证表单中的邮件和URL

如此我们便完成了PHP验证名称、邮件和URL。

“PHP如何验证表单中的邮件和URL”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: PHP如何验证表单中的邮件和URL

本文链接: https://www.lsjlt.com/news/304359.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP如何验证表单中的邮件和URL
    本篇内容介绍了“PHP如何验证表单中的邮件和URL”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正则表达式正则表达式是一种描述一段文本规则的...
    99+
    2023-06-25
  • PHP开发中如何优化表单验证和数据输入验证
    【引言】在Web开发中,表单验证和数据输入验证是非常重要的步骤,它们能够保证用户输入的数据的合法性和安全性。不仅可以避免用户输入错误或恶意输入,还可以防止数据库或应用程序遭受SQL注入等攻击。本文将介绍如何优化PHP开发中的表单验证和数据输...
    99+
    2023-10-21
    规范化 校验 后端验证 表单验证优化:前端验证 数据输入验证优化:过滤
  • 如何优化PHP开发中的表单提交和验证
    在PHP开发中,表单提交和验证是非常常见的需求。优化表单提交和验证的过程可以提高用户体验,并增加系统的安全性。下面将介绍一些具体的优化技巧和代码示例,帮助开发者更好地处理表单提交和验证。合理使用POST方法在表单提交中,使用POST方法可以...
    99+
    2023-10-21
    表单提交:submit 表单验证:validation 优化:optimization
  • PHP中的表单验证指南
    随着网络技术的发展,越来越多的网站需要使用表单来收集用户的信息。然而,为了保证用户输入的数据的安全性和有效性,我们需要在服务器端进行表单验证,而PHP正是一款非常适合实现表单验证的语言。在本文中,我们将会提供一些关于PHP中表单验证的指南,...
    99+
    2023-05-20
    表单验证 指南 PHP
  • 在 PHP 中验证电子邮件
    我们将介绍一种使用 filter_var() 函数和 FILTER_VALIDATE_EMAIL 过滤器名称 ID 在 PHP 中验证电子邮件地址的方法。filter_var() 函数将电子邮件作为第一...
    99+
    2024-02-27
  • PHP中如何验证表单中的必需字段
    这篇文章主要为大家展示了“PHP中如何验证表单中的必需字段”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP中如何验证表单中的必需字段”这篇文章吧。PHP必需字段我们在日常注册时要填写资料中就...
    99+
    2023-06-25
  • PHP中如何处理表单验证错误?
    PHP中如何处理表单验证错误?在开发Web应用程序时,表单的验证是非常重要的一步。通过验证表单数据,可以确保用户输入的数据符合预期的格式和要求,保证程序的准确性和安全性。当用户提交表单数据时,可能会发生一些错误,比如缺少必填字段、字段格式不...
    99+
    2023-12-09
    错误处理机制 PHP表单验证 表单验证错误处理
  • JavaScript如何验证表单空值及邮箱格式
    这篇文章将为大家详细讲解有关JavaScript如何验证表单空值及邮箱格式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。运行效果图如下:具体代码如下:<!DOCTY...
    99+
    2024-04-02
  • Vue中如何使用Validator表单验证插件
    这期内容当中小编将会给大家带来有关Vue中如何使用Validator表单验证插件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。基本使用<div id=&q...
    99+
    2024-04-02
  • Vue如何制作表单验证插件
    这篇文章给大家分享的是有关Vue如何制作表单验证插件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言前段时间,老大搭好了Vue的开发环境,于是我们愉快地从JQ来到了Vue。这中...
    99+
    2024-04-02
  • Javascript中如何实现表单验证
    本篇文章为大家展示了Javascript中如何实现表单验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 检查一段字符串是否全由数字组成: ﹤ scr...
    99+
    2024-04-02
  • 如何使用jQuery表单验证插件和日历插件
    这篇文章主要为大家展示了“如何使用jQuery表单验证插件和日历插件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用jQuery表单验证插件和日历插件”这...
    99+
    2024-04-02
  • Linux中如何实现验证邮件地址的正则表达式
    这篇文章主要介绍Linux中如何实现验证邮件地址的正则表达式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!邮件地址的规范来自于 RFC 5322 。有一个网站 emailregex.com 专门列...
    99+
    2023-06-16
  • jquery中validate如何实现表单验证
    这篇文章主要介绍了jquery中validate如何实现表单验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、目的为了更好地实现人机交互...
    99+
    2024-04-02
  • 如何使用php+js实现极验,拖动滑块验证码验证表单
    这篇文章给大家分享的是有关如何使用php+js实现极验,拖动滑块验证码验证表单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   代码实现   html文件   <!...
    99+
    2024-04-02
  • layui如何实现表单验证
    这篇文章主要介绍layui如何实现表单验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在网上看到很多validform和layer配合的验证方式,但是觉得写的不好,不清不楚的,于是...
    99+
    2024-04-02
  • 如何实现JS表单验证
    这篇文章主要介绍了如何实现JS表单验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先晒图index.html<!DOCTYPE&nb...
    99+
    2024-04-02
  • html5如何实现表单验证
    这篇文章主要介绍html5如何实现表单验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义。就其核心而言,表单验证是一套系统,...
    99+
    2024-04-02
  • jQuery如何实现表单验证
    这篇文章主要为大家展示了“jQuery如何实现表单验证”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现表单验证”这篇文章吧。具体代码如下所示:...
    99+
    2024-04-02
  • PHP表单验证的具体实现
    这篇文章主要讲解了“PHP表单验证的具体实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP表单验证的具体实现”吧!PHP 表单验证表单验证我们应该尽可能的对用户的输入进行验证(通过客户...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作