2012-03-25 158 views
3

我有一個登記表,用戶必須輸入有解決。我使用PHP進行驗證,目前我檢查以確保該字段不爲空。這裏是我的代碼:PHP空字段驗證

if (empty($_POST['address'])) { 
    $msg = 'You must enter an address' ; 
} else { 
    $address = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['address']))) ; 
} 

現在的問題是,用戶通過按空格鍵字段通過驗證進入「空白」空間。我需要的是一個方法,以確保用戶實際上在一個城市類型的,不只是一個空格或者幾個空格的。

+1

只是'您驗證之前 – zerkms 2012-03-25 23:21:57

回答

4

你已經在插入使用trim(),爲什麼不在一開始調用它一次,並測試值?

$user_address = trim($_POST['address']); 

if (empty($user_address)) { 
    $msg = 'You must enter an address' ; 
} else { 
    $address = mysqli_real_escape_string($dbc, strip_tags($user_address)) ; 
} 
0
if (empty($_POST['address']) || strlen(trim($_POST['address']))==0){ 
    $msg = 'You must enter an address' ; 
}else { 
    $address = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['address']))) ; 
} 

修整值。

+0

'.'是不是在PHP中的成員訪問運算符和字符串在PHP中沒有屬性,不管條件是不正確trim'變量。試試'strlen(trim($ _ POST ['address']))=== 0'。 – Ryan 2012-03-25 23:23:05

+0

對不起,這是java。 – Michelle 2012-03-25 23:24:23

0

您需要考慮正則表達式。我會開始使用拆分命令:split(' ', $address)
從這一點來說,你可以添加一個額外的else if語句來測試,看看結果字符串爲空。
,但更重要的是,你現在必須測試整個地址字符串以查看它是否包含工具:兩個字母的狀態代碼,後面一個逗號,和5(OR 9)位郵政編碼。 (我可以,如果你喜歡更具體的。)

0
if($_POST['submit']){ 
    $address = $_POST['address']; 

    if (empty($address)) { 
     echo "You must enter an address"; 
    } else { 
     $address = mysqli_real_escape_string($dbc, strip_tags($user_address)) ; 
    } 
} 

如果該字段的地址是空的,可以立即呼應消息

$_POST['submit']是確定用戶點擊提交按鈕