Как хранить данные <textarea>, а также экранировать и возвращать данные
Какой самый лучший маршрут для хранения данных в MySQL. С MySQL я должен просто использовать, TEXT в качестве моего типа поля?
Также при использовании mysql_real_escape_string() с возвращаемыми значениями \r\n . Но должен ли я запустить htmlentities() на нем после этого?
И затем, когда я возвращаю данные на экран, который я должен использовать, NL2BR()?
Просто пытаюсь найти лучший маршрут для хранения этой информации.
Спасибо за помощь!
2 ответа
TEXT
или же TINYTEXT
или что-то подобное должно быть хорошо для хранения данных ASCII от пользователя. Если вам не нужно много места, вы можете подумать о VARCHAR
я думаю что mysql_real_escape_string()
экранирует символы, которые могут поставить под угрозу безопасность SQL-запроса (одинарные кавычки, двойные кавычки и т. д.), но не делают намного больше.
htmlentities()
преобразует зарезервированные html-символы, такие как <и>, в их html-кодированный эквивалент, & lt; и & gt; соответственно. Эти символы не опасны для запросов SQL, поэтому вам, вероятно, не нужно избегать их, если вы не хотите отображать HTML-тег, введенный пользователем, в виде текста и не позволять его интерпретировать как HTML.
NL2BR()
Вероятно, нет необходимости.
Самое главное, ваше решение о том, когда использовать каждую из этих функций, будет зависеть от вашего конечного приложения. Вы можете нуждаться / хотеть некоторые, но не другие (хотя вы должны определенно использовать mysql_real_escape_string()
)
На самом деле зависит от того, что вы пытаетесь хранить. Для таких вещей, как имена пользователей, пароли и т. Д.... тогда вы можете использовать varchar. Но если вы храните длинный текст, такой как новостные сообщения или html-данные, то вы можете использовать TEXT или LONG TEXT (в зависимости от того, как долго это будет).
Вы должны ВСЕГДА использовать mysql_real_escape_string() при вставке в БД. Если вы выводите HTML из БД, вы можете захотеть запустить htmlentities или html_specialchars, чтобы убедиться, что вы не выводите введенный пользователем JavaScript, который может перенаправить ваших пользователей на сайты хакеров и тому подобное.
Еще одна идея заключается в том, что вы можете избежать данных, используя htmlentities перед вставкой в БД, но это ваш выбор.
NL2BR отлично подходит для принуждения всех \r\n к
теги вместо.
Похоже, вы на правильном пути...