Как правильно деактивировать данные, полученные из текстовой области, при ее возврате в текстовую область?

Пользователь вводит текст в текстовое поле. Затем он вставляется непосредственно в базу данных mySQL. Я использую trim, htmlentities, mysql_real_escape_string, и у меня есть магические кавычки. Как я должен дезинформировать его при возвращении этих данных в текстовое поле?

Спасибо за вашу помощь. Я никогда не был слишком уверен в правильном способе этого делать …

Related of "Как правильно деактивировать данные, полученные из текстовой области, при ее возврате в текстовую область?"

Вы не должны использовать htmlentities при его сохранении. При отображении следует использовать htmlentities . Эмпирическое правило заключается не в том, чтобы кодировать / дезинформировать данные до тех пор, пока вам не понадобится. Если вы делаете htmlentities на нем при сохранении, вам нужно сделать html_entity_decode в тексте, когда пользователь хочет отредактировать вход. Поэтому вы санируете за то, что вам нужно, и больше ничего. При его сохранении вам необходимо дезинформировать SQL-инъекцию, так что вы mysql_real_escape_string . При отображении вам нужно санировать XSS, так что вы htmlentities его.

Кроме того, я не уверен, что вы видели комментарий Даррила Хейна, но вы действительно не хотите, чтобы magic_quotes были включены. Они плохое, плохое, и они устарели от PHP 5.3 и полностью исчезнут в PHP 6.

В дополнение к ответу Паоло о том, когда использовать htmlentities() , если вы не используете старую версию PHP, правильный способ дезинфекции для вставки в базу данных mysql состоит в том, чтобы использовать подготовленные выражения, которые являются частью расширения mysqli . Это заменяет любую необходимость использования mysql_real_escape_string() .

Кроме этого, я думаю, что у вас есть вещи.