MySQL текстовое значение с апострофом не отображается правильно - PullRequest
0 голосов
/ 24 мая 2011

Я вставляю следующее значение TEXT в MySQL, используя ..

$ groupname = addlashes ($ _ POST ['groupname'];

При получении значения из Mysql I'mиспользование

$ name = $ row ['groupname'];

echo $ name;

И это правильно отображается как "Группа мистера Дэвиса"

но когда это значение добавляется в форму как

, тогда я передаю значение на другую страницу и извлекаю его как

$ name = $ _POST ['groupname']; echo $ name;

это выглядит как "Мистер Дэвис", сохраняющий все до апострофии.

?? Понятия не имею, почему, я пытался добавить полоски ($ _ POST ['groupname'], и то же самое происходит

Ответы [ 2 ]

4 голосов
/ 24 мая 2011
<input name='groupname' type='hidden' value='$groupname' />

Сгенерирует:

<input name='groupname' type='hidden' value='Mr Davis's Group' />
                                                     ^----

В указанном месте парсер браузера увидит «конец» value=, за которым следует какой-то неизвестный атрибут s и сломанный атрибутGroup '.

Чтобы встроить этот тип текста в форму, вам нужно использовать htmlspecialchars(), который преобразует любые метасимволы HTML (<, >, ', ") в эквиваленты их символьных сущностей, чтобы их можно было безопасно встраивать в форму.

addslashes() - устаревший метод «безопасного» добавления чего-либо в базу данных.Это не сделает что-то безопасным для встраивания в HTML.

1 голос
/ 06 января 2013

Проверьте кодировку текста вашей входной веб-страницы.Подберите свою кодировку БД - используйте utf-8.

...