首页博客网络编程
我们学习了如何创建具有必填字段的表单,以便从用户那里检索必要的信息。现在,我们必须了解如何确保输入字段不仅被填充,而且提交的信息是否有效。
如果开发人员希望从用户那里接收信息,PHP 表单验证非常重要。这就是为什么我们将向您介绍 PHP filter_var() 函数。您还将熟悉 PHP preg 匹配功能,并学习 PHP 验证电子邮件地址、URL 地址和昵称。
使用用于验证表单的PHP函数,您可以检查电子邮件和URL字段以确保输入有效。
这对于您需要电子邮件输入或链接的任何联系表单都至关重要。
通过使用 PHP 函数,您可以检查字符串是否包含特定模式。preg_match()
下面的示例揭示了一种检查字段是否仅包含字母和空格的方法。如果输入不符合我们的条件,将显示一条错误消息:
例复制
if (empty($_POST["name"])) { $name_error = "Nickname missing."; } else { $name = proc_input($_POST["name"]); // check if name doesn't contain unwanted characters if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $name_error = "Letters and spaces only."; } }
注意:PHP preg match是一个用于搜索字符串模式的函数。如果您正在寻找的模式存在,它将返回 true,否则返回 false。
当您使用 PHP 表单收集联系人数据时,PHP 验证电子邮件地址至关重要。如果忽略并跳过此验证过程,则最终可能会得到一堆无法使用的地址。
PHP 验证电子邮件输入字段的最佳方法之一是使用 .如果输入不满足设置条件,将显示一条错误消息:filter_var()
例复制
if (empty($_POST["email"])) { $email_error = "Email missing."; } else { $email = test_input($_POST["email"]); // check e-mail pattern if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $email_error = "Email invalid."; } }
通过使用以下示例中的代码,我们可以检查输入是否包含有效的 URL 地址。请注意在这种情况下如何允许使用短划线 ()。如果输入不符合我们的条件,将显示一条错误消息。/
请参阅一个简单的示例以更好地了解 PHP URL 验证:
例复制
if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // check syntax of the URL (dashes allowed) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $website_error = "URL Invalid."; } }
让我们看一下 PHP 表单验证的最终脚本。下面的代码包括对所有三种输入类型的验证:电子邮件地址、URL 和昵称。注意如何使用 PHP preg match 函数来搜索特定字符串中的模式:
例复制
<?php // Defining variables $nickname_error = $email_error = $website_error = ""; $nickname = $email = $feedback = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $name_error = "Nickname missing."; } } else { $name = proc_input($_POST["name"]); // check if name doesn't contain unwanted characters if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $name_error = "Letters and spaces only."; } } if (empty($_POST["email"])) { $email_error = "Email missing."; } else { $email = proc_input($_POST["email"]); // check e-mail pattern if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $email_error = "Email invalid."; } } if (empty($_POST["website"])) { $website = ""; } else { $website = proc_input($_POST["website"]); // check syntax of the URL (dashes allowed) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $website_error = "URL Invalid."; } } if (empty($_POST["feedback"])) { $feedback = ""; } else { $feedback = proc_input($_POST["feedback"]); }?>
使 PHP 验证表单中的电子邮件和 URL 字段可确保提交的详细信息正确无误。
如果不执行验证,您可能无法收集联系信息等关键数据。
PHP preg match 函数用于检查是否可以在特定字符串中找到特定模式。
虽然正是为了让PHP验证电子邮件,但它并不总是产生预期的结果。filter_validate_email
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位