2012-05-21 161 views
0

以下php preg_match我試圖顯示一個錯誤消息,如果有人在textarea窗體中輸入除a-z或0-9以外的任何值。只有用戶可以輸入字符串和數字值。不,<? >任何PHP,JavaScript代碼等Php preg_match問題

if(preg_match("/^[a-zA-Z0-9]+/ ", $wall) != 1) 
$err[] = "Wrong value"; 

所以,如果我把PHP標籤到窗體的begning那麼它的顯示錯誤消息,但如果我把「一些文本,然後鍵入PHP標籤和另一值「,那麼它不會顯示任何錯誤消息。

對不起我的英文不好。:(

回答

1

你可以只檢查是否有你不希望任何字符

if(preg_match("/[^a-zA-Z0-9]/ ", $wall)) { 
    $err[] = "Wrong value"; 
} 
+0

謝謝@xdazz它的工作.. – Shibbir

0

因爲你設置的表達式中使用^

檢查在字符串的開頭字母數字字符,如果你改成這樣,這將檢查它是否有一個<或>在字符串中的任何地方:

if(preg_match("/[<|>]+/ ", $wall)) 
$err[] = "Wrong value"; 
+0

嗯,我正在檢查它.. – Shibbir

+0

@tehluz它不工作..它成功插入。如果寫 - sometext然後php標籤然後sometext。 – Shibbir

+0

也必須改變正則表達式。 – Menztrual

1
if(preg_match("/^[a-zA-Z0-9]+$/ ", $wall)) { 
    $err[] = "Wrong value"; 
} 

你必須錨定開始和結束,否則他們可以鍵入a#[email protected]#[email protected]#$#

另外,最後不需要!= 1。沒有它,它更具可讀性。