1 //表单学习笔记 2 //建立一张表单的验证 3 <!DOCTYPE html> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 7 <title>表单验证</title> 8 </head> 9 <body> 10 <?php 11 //创建一个检查函数 12 13 14 function test_input($data){ 15 $data=trim($data); 16 $data=stripslashes($data); 17 $data=htmlspecialchars($data); 18 return $data; 19 } 20 if(!empty($_POST['submit'])){ 21 // 定义变量并设置为空值 22 $nameErr = $emailErr = $genderErr = $websiteErr = ""; 23 $name = $email = $gender = $comment = $website = ""; 24 25 if ($_SERVER["REQUEST_METHOD"] == "POST") { 26 if (empty($_POST["name"])) { 27 $nameErr = "Name is required"; 28 } else { 29 $name = test_input($_POST["name"]); 30 } 31 if(!preg_match("/^[a-zA-Z ]*$/", $name)){ 32 $nameErr="只允许字母和空格!"; 33 } 34 35 if (empty($_POST["email"])) { 36 $emailErr = "Email is required"; 37 } else { 38 $email = test_input($_POST["email"]); 39 } 40 if(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)){ 41 $emailErr = "无效的 email 格式!"; 42 } 43 44 if (empty($_POST["website"])) { 45 $website = ""; 46 } else { 47 $website = test_input($_POST["website"]); 48 } 49 if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/% 50 =~_|]/i",$website)) { 51 $websiteErr = "无效的 URL"; 52 } 53 54 if (empty($_POST["comment"])) { 55 $comment = ""; 56 } else { 57 $comment = test_input($_POST["comment"]); 58 } 59 60 if (empty($_POST["gender"])) { 61 $genderErr = "Gender is required"; 62 } else { 63 $gender = test_input($_POST["gender"]); 64 } 65 } 66 } 67 ?> 68 69 <h2>PHP表单验证</h2> 70 <p style="color:#ff0000">*必填字段</p> 71 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) ?>"> 72 <p>姓名:<input type="text" name="name"><span style="color:#ff0000">*</span><?php echo $nameErr?></p> 73 <p>邮箱:<input type="text" name="email"><span style="color:#ff0000">*</span><?php echo $emailErr?></p> 74 <p>网址:<input type="text" name="website"><?php echo $websiteErr?></p> 75 <p>评论:<textarea name="comment" rows="5" cols="40"></textarea></p> 76 <p>性别:<input type="radio" name="gender" value="female">女性<input type="radio" name="gender" value="male">男性<span style="color:#ff0000">*</span><?php echo $genderErr?></p> 77 <p><input type="submit" name="submit" value="提交"></p> 78 </form> 79 <h2>您的输入:</h2> 80 81 82 </body> 83 </html>