开发学院

您的位置:首页>教程>正文

教程正文

PHP 表单验证 - 验证 E-mail 和 URL

PHP 表单验证 - 验证 E-mail 和 URL

    本节展示如何验证名字、电邮和 URL。

    PHP - 验证名字

    以下代码展示的简单方法检查 name 字段是否包含字母和空格。如果 name 字段无效,则存储一条错误消息:

    $name = test-input($-POST["name"]);
    if (!preg-match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "只允许字母和空格!"; 
    }

    注释:preg-match() 函数检索字符串的模式,如果模式存在则返回 true,否则返回 false。

    PHP - 验证 E-mail

    以下代码展示的简单方法检查 e-mail 地址语法是否有效。如果无效则存储一条错误消息:

    $email = test-input($-POST["email"]);
    if (!preg-match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
      $emailErr = "无效的 email 格式!"; 
    }

    PHP - 验证 URL

    以下代码展示的方法检查 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"; 
    }

    PHP - 验证 Name、E-mail、以及 URL

    现在,脚本是这样的:

    实例

    <?php// 定义变量并设置为空值$nameErr = $emailErr = $genderErr = $websiteErr = "";
    $name = $email = $gender = $comment = $website = "";
    
    if ($-SERVER["REQUEST-METHOD"] == "POST") {
      if (empty($-POST["name"])) {
        $nameErr = "Name is required";
      } else {
        $name = test-input($-POST["name"]);// 检查名字是否包含字母和空格if (!preg-match("/^[a-zA-Z ]*$/",$name)) {
          $nameErr = "Only letters and white space allowed"; 
        }
      }
    
      if (empty($-POST["email"])) {
        $emailErr = "Email is required";
      } else {
        $email = test-input($-POST["email"]);// 检查电邮地址语法是否有效if (!preg-match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
          $emailErr = "Invalid email format"; 
        }
      }
    
      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 = "Invalid URL"; 
        }
      }
    
      if (empty($-POST["comment"])) {
        $comment = "";
      } else {
        $comment = test-input($-POST["comment"]);
      }
    
      if (empty($-POST["gender"])) {
        $genderErr = "Gender is required";
      } else {
        $gender = test-input($-POST["gender"]);
      }
    }
    ?>


    接下来向您讲解如何防止表单在用户提交表单后清空所有输入字段。