Передавать специальные символы в PHP - PullRequest
0 голосов
/ 05 июля 2011

У меня есть текстовое поле, где пользователь может передавать подстановочные знаки - более конкретно к вопросу они могут использовать символ «%».

Я использую ajax, чтобы получить значение и отправить его в файл PHP. Если я введу «% BA» в текстовый файл и получу значение, используя

document.getElementById('textfield').value

На самом деле это '% BA'. Я использую метод POST, чтобы отправить его в файл PHP. Но переменная отображается как « » в веб-браузере и вставляет «° - градус маленький o» в базу данных.

Я уверен, что есть и другие случаи, о которых я тоже не знаю. Есть ли в PHP функция для экранирования специальных символов или любой другой способ получить точную строку?

Редактировать: Это может быть предположение, но выполнение escape(document.getElementById('textfield').value) для отправки значения и использование urldecode($values[3]) для получения значения не работает. Может быть, это проблема js to PHP.

Обновление: urldecode не будет работать. Прочитайте первый комментарий в urldecode . Использовал функцию там. Решаемые.

Ответы [ 3 ]

1 голос
/ 05 июля 2011

Вы можете кодировать символы с помощью urlencode (и, возможно, htmlspecialchars тоже) перед сохранением в базе данных и использовать urldecode(и, возможно, htmlspecialchars_decode), чтобы декодировать их перед отображением для пользователя.

1 голос
/ 05 июля 2011

при передаче значения с использованием ajax, вы просто кодируете значение с помощью функции encodeURIComponent () и используете функцию urldecode (), чтобы декодировать его в файле php.Это может решить проблему.

0 голосов
/ 11 июля 2011

Вы можете использовать escape в javascript, т.е.

escape(document.getElementById('val'))
...