亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何驗證表單中的郵件和URL

發布時間:2021-10-29 15:04:01 來源:億速云 閱讀:142 作者:iii 欄目:編程語言

本篇內容介紹了“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”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

彭州市| 大关县| 资讯| 青海省| 金乡县| 海宁市| 永州市| 临武县| 徐闻县| 铜山县| 兴文县| 奉节县| 泗阳县| 桦南县| 台中市| 雷波县| 仲巴县| 浦东新区| 普安县| 东乌珠穆沁旗| 绥宁县| 方城县| 通州市| 乌兰县| 莱西市| 岳西县| 丹东市| 石阡县| 昌邑市| 民权县| 鸡西市| 黎城县| 象州县| 安图县| 保定市| 北碚区| 潜山县| 易门县| 喀喇沁旗| 金川县| 明星|