本文內容來自http://www.w3school.com.cn/php/php_form_url_email.aspphp
本節展現如何驗證名字、電郵和 URL。html
如下代碼展現的簡單方法檢查 name 字段是否包含字母和空格。若是 name 字段無效,則存儲一條錯誤消息:web
$name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "只容許字母和空格!"; }
註釋:preg_match() 函數檢索字符串的模式,若是模式存在則返回 true,不然返回 false。正則表達式
如下代碼展現的簡單方法檢查 e-mail 地址語法是否有效。若是無效則存儲一條錯誤消息:函數
$email = test_input($_POST["email"]); if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) { $emailErr = "無效的 email 格式!"; }
PHP - 驗證 URLpost
如下代碼展現的方法檢查 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"; }
<!DOCTYPE HTML>
<html> <head> <style> .error {color: #FF0000;} </style> </head> <body> <h2>PHP 驗證明例</h2> <p><span class="error">* 必需的字段</span></p> <form method="post" action=""> 姓名:<input type="text" name="name"> <span class="error">* </span> <br><br> 電郵:<input type="text" name="email"> <span class="error">* </span> <br><br> 網址:<input type="text" name="website"> <span class="error"></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">* </span> <br><br> <input type="submit" name="submit" value="提交"> </form> </body> </html><?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("/([\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"; } } 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; } ?><?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?><?php echo $nameErr;?><?php echo $emailErr;?><?php echo $websiteErr;?><?php echo $genderErr;?><?php echo "<h2>您的輸入:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?>