PHP對錶單提交特殊字元的過濾和處理

科技小能手發表於2017-11-12
函式名  釋義  介紹
htmlspecialchars 將與、單雙引號、大於和小於號化成HTML格式 &轉成& 

“轉成"

` 轉成'

<轉成&lt;

>轉成&gt;
htmlentities() 所有字元都轉成HTML格式 除上面htmlspecialchars字元外,還包括雙位元組字元顯示成編碼等。



addslashes 單雙引號、反斜線及NULL加上反斜線轉義 被改的字元包括單引號 (`)、雙引號 (“)、反斜線 backslash (/) 以及空字元NULL。
stripslashes 去掉反斜線字元 去掉字串中的反斜線字元。若是連續二個反斜線,則去掉一個,留下一個。若只有一個反斜線,就直接去掉。



quotemeta 加入引用符號 將字串中含有 . // + * ? [ ^ ] ( $ ) 等字元的前面加入反斜線 “/” 符號。
nl2br() 將換行字元轉成<br>
strip_tags 去掉HTML及PHP標記 去掉字串中任何 HTML標記和PHP標記,包括標記封堵之間的內容。注意如果字串HTML及PHP標籤存在錯誤,也會返回錯誤。
mysql_real_escape_string 轉義SQL字串中的特殊字元 轉義 /x00  /n  /r  空格  /  `  ” /x1a,針對多位元組字元處理很有效。mysql_real_escape_string會判斷字符集,mysql_escape_string則不用考慮。

轉自http://blog.csdn.net/jianglei421/article/details/5460810

一般我是這樣使用的:

kindedit編輯器:
從post來的進行addslashes後就可存入資料庫了,取出後直接echo即可
普通的文字:
1.htmlspecialchars接著addslashes存入資料庫,取出後直接echo即可。
2.addslashes存入資料庫,取出後htmlspecialchars輸出。
說明:
addslashes僅僅是為了讓原來的字元正確地進入資料庫。
htmlspecialchars是吧html標籤轉化掉。

額外:

magic_quotes_gpc函式在php中的作用是判斷解析使用者提示的資料,如包括有:post、get、cookie過來的資料增加轉義字元“”,以確保這些資料不會引起程式,特別是資料庫語句因為特殊字元引起的汙染而出現致命的錯誤

在magic_quotes_gpc=On的情況下,如果輸入的資料有

單引號(’)、雙引號(”)、反斜線()與 NUL(NULL 字元)等字元都會被加上反斜線。這些轉義是必須的,如果這個選項為off,那麼我們就必須呼叫addslashes這個函式來為字串增加轉義。

正是因為這個選項必須為On,但是又讓使用者進行配置的矛盾,在PHP6中刪除了這個選項,一切的程式設計都需要在magic_quotes_gpc=Off下進行了。在這樣的環境下如果不對使用者的資料進行轉義,後果不僅僅是程式錯誤而已了。同樣的會引起資料庫被注入攻擊的危險。所以從現在開始大家都不要再依賴這個設定為On了,以免有一天你的伺服器需要更新到PHP6而導致你的程式不能正常工作。

本文轉自 gutaotao1989 51CTO部落格,原文連結:http://blog.51cto.com/taoyouth/1920125


相關文章