2010-08-16 43 views
0

我有一些我想存儲在數據庫中的html代碼。我需要一種方法來編碼它在PHP中,所以所有的特殊字符不會打破數據庫插入(該HTML可以包括各種規格的字符),然後一種方式來取消編碼,在JavaScript的另一端,一旦我通過它通過JSON,使HTML正確呈現。在PHP中編碼html和在javascript中解碼

有什麼辦法可以做到這一點?

+0

單引號和雙引號是不是已經在數據庫中轉義了? – simnom 2010-08-16 14:35:52

+0

@simnom - 它們應該被轉義*用於*數據庫(最好在使用PHP時使用PDO)。將它們從數據庫中提取出來的行爲將會讓它們失望。 – Quentin 2010-08-16 14:39:29

+0

抱歉編輯我的帖子咯....我需要的東西與我最初發布的 – 2010-08-16 14:40:18

回答

2

由於您使用的PHP:

對於數據庫,使用PDO:http://bobby-tables.com/php.html

而對於JSON,使用JSON方法:http://php.net/json

這些爲您處理所有的逃跑。

+0

我無法安裝JSON擴展,因此我在php中將json建立爲字符串,然後將其發回。我已經意識到,它實際上是打破我的SQL查詢的特殊字符,所以我需要在PHP中編碼,所以這不會發生。 – 2010-08-16 14:44:36

+0

Extension?它是核心的一部分! http://uk2.php.net/manual/en/json.requirements.php – Quentin 2010-08-16 14:49:43

+0

我在5.1.6上。不要以爲它是該版本核心的一部分。 – 2010-08-16 15:07:55

1

關於「不打破數據庫插入」,這應該是一個完全沒有意義的觀點。您應該正確地轉義所有用戶提供的數據(例如,mysqli_real_escape_string)或使用binding

+0

小心使用real_escape_string()。它可以打開門插入攻擊。 http://php.net/manual/en/function.mysql-real-escape-string.php。你最好是自己尋找和替換字符,這樣你可以轉儲和無效的字符串。 – 2012-10-07 19:58:30