Утро,HTML Специальные символы в DB и echo обратно на вход
Я создал небольшую форму для хранения некоторой информации в базе данных.
У меня есть magic_quotes_gpc отключен на моем сервере.
Если я ввожу "
или знак £
в поле сохраняется в базе данных без проблем.
Когда я возвращаю его обратно с помощью php, он отображает, но если я использую значение в поле формы ввода, то "
закроет поле значений.
<input type="text" name="variable" value="<?php echo $row[variable]; ?>" />
Я использовал htmlspecialchars вокруг значения ввода, и он работает.
<input type="text" name="variable" value="<?php echo htmlspecialchars($row[variable]); ?>" />
Но я посмотрел на с открытым исходным кодом корзины в качестве эталона, и они не используют htmlspecialchars, но хранят данные по-другому.
Я попытался с помощью метода urlencodes они использовали:
urlencode(html_entity_decode($_POST[variable],ENT_QUOTES, 'UTF-8'));
, но это, кажется, чтобы сохранить как много цифр и знаков +, которые не отображают неправильно.
Я предпочел бы кодировать базу данных обновлений вместо использования метода i am с htmlspecialschars
.
Но не совсем уверен, какой путь был бы лучше?
Спасибо
«Я предпочел бы закодировать базу данных обновления вместо использования метода я с htmlspecialschars.» - Прекрати это хотеть. Кодирование данных как HTML непосредственно перед вставкой в HTML является разумным подходом. Он сохраняет данные в чистом формате до последней минуты, поэтому, если вам когда-либо понадобится разместить его где-то, что не является HTML, все равно будет хорошо. – Quentin
[Великий эскапизм (или: что вам нужно знать, чтобы работать с текстом в тексте)] (http://kunststube.net/escapism/) – deceze