是否需要驗證名稱或街道地址?當我有它以下面的格式編碼。如果是的話,爲什麼?PHP表單驗證問題?
$address = mysqli_real_escape_string($mysqli, htmlentities($_POST['address']));
$name = mysqli_real_escape_string($mysqli, htmlentities($_POST['name']));
是否需要驗證名稱或街道地址?當我有它以下面的格式編碼。如果是的話,爲什麼?PHP表單驗證問題?
$address = mysqli_real_escape_string($mysqli, htmlentities($_POST['address']));
$name = mysqli_real_escape_string($mysqli, htmlentities($_POST['name']));
htmlspecialchars
/htmlentities
/等你的數據庫過濾 - 在HTML/XML的/ etc文件顯示之前直接做到這一點。blah blah <>DAS#^^[email protected]@vm/.,czc
,那麼此代碼看起來很好。您知道哪些名稱或地址包含'$'或'%'?您可以執行簡單的檢查來檢查用戶是否愚蠢。通常,一個名稱只包含單詞字符(如果它們是Jr,Sr等,有時候會包含逗號和句點),並且地址只包含字母數字字符(除非它們縮寫,在這種情況下可能包含句點)。這是沒有必要的,但我個人會把檢查,所以你不會最終只是進入隨機BS只是有趣的用戶(這是我的寵物peeves,對不起)。
你看起來有點混了,因爲你有逃跑的數據,沒有過濾的2種手段時,規則是FIEO濾波輸入轉義輸出
過濾:
如果您認爲一個「名」只能是大寫和小寫字母,長度在2到50個字符之間,可以包含破折號和單引號('),那麼你應該:
刪除任何不符合你自己的定義上面的例子(使用正則表達式也許) 或 中止操作
根據您想如何樣是你的用戶/潛在裂解
filter_var()也是在這種情況下非常有用的。
逃離
你逃避準備的數據爲下一個環境中的數據正走向;
如果它進入數據庫,那麼你會使用你的mysqli_real_escape_string(),如果你在html中回顯屏幕然後使用htmlentities()等等。
HTH
validate!= escape – 2010-03-25 10:55:29