Я вставляю в MySQL следующее значение TEXT.
$ groupname = addslashes ($ _ POST ['groupname'];
При получении значения из Mysql я использую
$ name = $ row ['groupname'];
echo $ name;
И это правильно показывает «Группа г-на Дэвиса»,
но когда это значение добавляется к форме как
затем передаю значение на другую страницу и получаю его как
$ name = $ _POST ['groupname']; echo $ name;
он появляется как «мистер Дэвис», сохраняя все до апострофии.
Не знаю, почему, я пробовал добавлять stripslashes ($ _ POST ['groupname'], и то же самое происходит
<input name='groupname' type='hidden' value='$groupname' />
Будет генерировать:
<input name='groupname' type='hidden' value='Mr Davis's Group' /> ^----
В указанном месте анализатор браузера увидит «конец» value=
, за которым следует неизвестный атрибут s
и сломанная атрибут Group '
.
Чтобы вставить этот тип текста в форму, вам нужно использовать htmlspecialchars()
, который преобразует любые метасимволы HTML ( <
, >
, '
, "
) в их эквиваленты символов символа, чтобы их можно было безопасно внедрить в форму.
addslashes()
– устаревший метод «безопасного» добавления чего-то в базу данных. Это не сделает что-то безопасное для встраивания в HTML.
Проверьте текстовую кодировку веб-страницы ввода. Сопоставьте свою кодировку db – используйте utf-8.