您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“PHP中如何驗(yàn)證表單中的必需字段”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PHP中如何驗(yàn)證表單中的必需字段”這篇文章吧。
PHP必需字段
我們在日常注冊時(shí)要填寫資料中就遇到過必需字段,必需字段就是我們填寫資料的時(shí)候,必須填寫的,不然是沒有辦法通過的。
在之前的文章中我們已經(jīng)介紹了表單的驗(yàn)證規(guī)則,其中我們舉的例子中介紹到了:名字的驗(yàn)證規(guī)則是必須的,E-mail的驗(yàn)證規(guī)則是必須的,其中必須是一個(gè)有效的電子郵件地址(包含'@
'和'.
')。性別的驗(yàn)證規(guī)則是必須的,必須選擇一個(gè)。這就是屬于我們勢力中的必需字段了。
在之前文章的示例中,所有輸入字段都是可選的,因?yàn)槲覀儧]有對(duì)它們進(jìn)行驗(yàn)證。那要怎樣才能實(shí)現(xiàn)必需字段必填的效果呢?
這時(shí)候我們可以在以下代碼中我們加入了一些新的變量: $nameErr
, $emailErr
, $genderErr
, 和 $websiteErr
。
這些錯(cuò)誤變量將顯示在必需字段上。 我們還為每個(gè)$_POST變量增加了一個(gè)if else
語句。 這些語句將檢查 $_POST 變量是 否為空(使用php的 empty()
函數(shù))。如果為空,將顯示對(duì)應(yīng)的錯(cuò)誤信息。 如果不為空,數(shù)據(jù)將傳遞給test_input()
函數(shù)。
接下來我們來看一下這些變量的實(shí)際應(yīng)用:
<?php // 定義變量并默認(rèn)設(shè)為空值 $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 (empty($_POST["email"])) { $emailErr = "郵箱是必需的。"; } else { $email = test_input($_POST["email"]); } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "性別是必需的。"; } else { $gender = test_input($_POST["gender"]); } } ?>
輸出結(jié)果目前看不到,這段代碼需要通過表單代碼來驗(yàn)證表單的數(shù)據(jù)。
名字的驗(yàn)證規(guī)則是必須的,E-mail的驗(yàn)證規(guī)則是必須的,其中必須是一個(gè)有效的電子郵件地址(包含'@'和'.')。性別的驗(yàn)證規(guī)則是必須的,必須選擇一個(gè)。
通過上述代碼我們還不能夠?qū)㈠e(cuò)誤顯示出來,上述的代碼知識(shí)我們在名字、郵箱和性別這三個(gè)必需字段輸入框內(nèi)什么都不寫就提交的話,會(huì)在頁面上顯示出錯(cuò)誤的信息。如果不是空白就會(huì)得到驗(yàn)證,再去執(zhí)行l(wèi)se 語句里面的內(nèi)容。那接下來我們來看一下怎樣把錯(cuò)誤的信息顯示出來。
在的HTML實(shí)例表單中,我們?yōu)槊總€(gè)字段中添加了一些腳本, 各個(gè)腳本會(huì)在信息輸入錯(cuò)誤時(shí)顯示錯(cuò)誤信息。以達(dá)到如果用戶未填寫信息就提交表單則會(huì)輸出錯(cuò)誤信息的目的。
下面通過示例,我們看一下怎樣把錯(cuò)誤的信息顯示出來。示例如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>億速云</title> </head> <style> .error {color: #FF0000;} </style> <body> <?php // 定義變量并設(shè)置為空值 $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 (empty($_POST["email"])) { $emailErr = "電郵是必填的"; } else { $email = test_input($_POST["email"]); } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); } 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 驗(yàn)證實(shí)例</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> 網(wǎng)址:<input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 評(píng)論:<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>
通過驗(yàn)證數(shù)據(jù)之后,一旦未填寫我們帶有標(biāo)記的姓名、電郵和性別信息就點(diǎn)提交的話,輸出結(jié)果如下:
由上述示例,我們便通過$nameErr, $emailErr, $genderErr, 和 $websiteErr這些變量,以及ifelse語句配合錯(cuò)誤顯示完成了PHP表單中必需字段的填寫要求。
以上是“PHP中如何驗(yàn)證表單中的必需字段”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。