程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP/MySQL三日通(8)

PHP/MySQL三日通(8)

編輯:PHP綜合

二、 數據校驗

想象一下這樣的情形:我們把數據庫都設計妥當了,現在請用戶輸入信息來寫到數據庫中去。假設您有一個字段是要求數字類型的信息,比如價格;而某個可愛的用戶,卻在這一欄裡輸入了文字信息,使得您的應用程序的執行過程出現了故障。對您在SQL語句中提供的文字類型的數據,MySQL數據庫拒不接受,並向您提出了“嚴正抗議”。

怎麼辦呢?您要用數據校驗來防止以上狀況發生。

簡單地講,數據校驗是指我們對數據(通常是用戶經由HTML表格傳過來的)進行檢查,看看它是否遵從一定的規則。規則可以是多種多樣的,比如某一數據元素不能為空,或者要求某一數據項的內容必須滿足一定的要求(例如前面的例子中要求必須是數字而不是文字,或者要求電子郵件地址中一定要包含一個“@”字等等)。

數據校驗既可以在服務器一端作,也可以在客戶端來作。PHP是用來作服務器一端的數據校驗的,而JavaScript或其他客戶端腳本編程語言則能夠提供客戶端的數據校驗功能。本文說的是PHP,所以我們在這裡著重介紹服務器端的校驗。如果您想找一些現成的、在客戶端運行的數據較驗程序,那您可以去網猴程序庫看看。

暫時把數據庫放在一邊不談,我們先來說說PHP的數據校驗方法。如果您願意(或者說,您想記錄我們要校驗的那些數據的話),您可以在前面所建的員工數據庫的裡加入其他字段,很簡單,用MySQL的ALTER 語句就行了。

有好幾個PHP功能都可以用來作數據校驗的工作,有些很簡單,有些則復雜一些。其中strlen()是比較簡單的一個函數,它能夠告訴我們一個變量的長度。

更復雜一點兒的是ereg(),這個函數可以處理完整的常規表達式來進行復雜的校驗。我不想就常規表達式講得太深,因為許多書都是專門寫這個問題的。不過我會在下一頁中給出一些簡單的例子。

我們先從一個簡單的例子開始吧。下面這個程序要檢查一個變量是否存在。

<html>
<body>
<?php
if ($submit) {
if (!$first || !$last) {
$error = "對不起,您必須填寫所有的欄目!";
} else {
// 處理表格輸入內容
echo "謝謝!";
}
}
if (!$submit || $error) {
echo $error;
?>
<P>
<form method="post" action="<?php echo $PHP_SELF ?>">
第一欄: <input type="text" name="名" value="<?php echo $first ?>"><br>
第二欄: <input type="text" name="姓" value="<?php echo $last ?>"><br>
<input type="Submit" name="submit" value="輸入信息">
</form>
<?php
} // if結束
?>
</body>
</html>

這段程序中關鍵的地方是嵌套的條件判定語句。第一層檢查用戶是否按了發送數據的按鈕。如果是,程序接著檢查$first和$last兩個變量是否都存在。那個 || 符號表示“或”,而 ! 符號表示“非”。那一句程序用一般語言描述就是“如果$first不存在或者$last不存在,那麼就把 $error變量置成下面的值。”

接下來,我們再進一步,檢查一段文字的長度。這對用戶口令的檢查是很有必要的,因為您不想讓某些懶惰的用戶輸入只有一、兩個字的口令,可能會要求他們輸入六位長的口令。

我們已經講到strlen()這個函數了。它只是簡單地返回一個數字,該數字等於被測變量中所包含的字符個數。這裡,我修改一下上面的程序,檢查一下$first與$last的長度。

<html>
<body>
<?php
if ($submit) {
if (strlen($first) < 6 || strlen($last) < 6) {
$error = "對不起,您必須填寫所有欄目!";
} else {
// 處理表格輸入內容
echo "謝謝!";
}
}
if (!$submit || $error) {
echo $error;
?>
<P>
<form method="post" action="<?php echo $PHP_SELF ?>">
第一欄: <input type="text" name="名" value="<?php echo $first ?>"><br>
第二欄: <input type="text" name="姓" value="<?php echo $last ?>"><br>
<input type="Submit" name="submit" value="輸入信息">
</form>
<?php
} // if結束
?>
</body>
</html>

您可以執行一下這段程序,輸入六個字或少於六個字的內容。這種校驗很簡單,但很有效?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved