台灣最大程式設計社群網站
線上人數
673
 
會員總數:244893
討論主題:188887
歡迎您免費加入會員
討論區列表 >> PHP >> preg_match問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
preg_match問題
價值 : 150 QP  點閱數:625 回應數:3

樓主

Jian shin
門外漢
0 3
61 4
發送站內信

preg_match( '/^[ 0-9a-zA-Z_]+$/u',$_POST[englishname])
我想要針對SQL INJECTION做字串過濾,但是我又想要保留"."逗號、"-"槓槓和"_"底線的特殊字串,需要如何改比較好?



搜尋相關Tags的文章: [ PHP sql injection ] ,
本篇文章發表於2016-10-20 18:55
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

彩虹
檢舉此回應
試試看這個
preg_match( '/^[\w\s_.-]+$/',$_POST[englishname]);

應該是可以的
本篇文章回覆於2016-10-20 20:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

彩虹
檢舉此回應
我覺得剛剛提供的方式有點怪

順便修飾一下
因為我看你$_POST的是英文名字,所以才把\s加上去,允許空白鍵,如下:
preg_match( '/^[\w\s\.\-]+$/',$_POST[englishname]);

如果不需要的話可以拿掉,如下:
preg_match( '/^[\w\.\-]+$/',$_POST[englishname]);


\w:比對數字、英文字母以及 _ 符號(底線)
\s:比對任一個空白字元
\.:允許小數點
\-:允許-符號




Regex Tester ,你可以直接在這邊做測試
https://www.piliapp.com/regex-tester/#php
本篇文章回覆於2016-10-20 21:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Jian shin
檢舉此回應
謝謝彩虹大大的幫助,感激不盡
本篇文章回覆於2016-10-20 21:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.