Bạn không nên sử dụng htmlentities
khi lưu nó. Bạn nên sử dụng htmlentities
khi hiển thị nó. Quy tắc chung là không mã hóa / làm sạch dữ liệu cho đến khi bạn cần. Nếu bạn làm htmlentities
trên đó khi bạn lưu thì bạn phải thực hiện html_entity_decode
trên văn bản khi người dùng muốn chỉnh sửa đầu vào. Vì vậy, bạn vệ sinh cho những gì bạn cần và không có gì hơn. Khi lưu nó, bạn cần phải làm sạch để chèn SQL, vì vậy bạn mysql_real_escape_string
nó. Khi hiển thị, bạn cần phải làm sạch cho XSS, vì vậy bạn htmlentities
nó.
Ngoài ra, tôi không chắc liệu bạn có xem nhận xét của Darryl Hein hay không, nhưng bạn thực sự không muốn bật magic_quotes. Chúng là một thứ tồi tệ, tồi tệ và đã không được chấp nhận kể từ PHP 5.3 và sẽ không còn hoàn toàn trong PHP 6.