Intereting Posts

Значение mysql text с апострофом не отображается правильно

Я вставляю в 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.