Как хранить данные <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 к
теги вместо.

Похоже, вы на правильном пути...

Другие вопросы по тегам