PHP: простая форма кодирования / декодирования - PullRequest
1 голос
/ 03 апреля 2010

Возможно, этот вопрос уже задавался ранее, но я его еще раз задам.

В настоящее время у меня возникла проблема с кодированием формы. При публикации моей формы все пробелы заменяются символом «+». Я хотел бы заменить этот символ "+" реальным пробелом.

Есть ли у кого-нибудь решение PHP для этого?

Заранее спасибо.

Ура, Леннарт

Ответы [ 3 ]

0 голосов
/ 03 апреля 2010

Этого не должно быть, если браузер ведет себя правильно.Мое предположение было бы, что JavaScript портит ваши данные.Замена пробелов на плюсы выполняется при кодировании URL, возможно, это поможет.

Вы можете использовать firebug для проверки любых js-помех.

0 голосов
/ 03 апреля 2010

Я использую AJAX (x = в данном случае JSON) для обработки сообщений формы и т. Д.

Тогда давайте посмотрим код.

Возможно, вы делаете что-то вроде попытки закодировать ваши данные вручную, прежде чем другой компонент также закодирует их. Замена пробела на + вполне стандартна и ожидается для кодирования форм, но если вы случайно сделаете это дважды, у вас останется кодированный + в конце.

Если вы используете функцию JavaScript escape: не делайте. (Когда вам нужно URL-кодировать значение формы для включения в параметр, правильный метод - encodeURIComponent. escape - это своеобразное нестандартное кодирование, которое вам почти никогда не понадобится)

0 голосов
/ 03 апреля 2010

Невозможно воспроизвести

<form>
<input type=text name="a" value="text with spaces">
<input type=submit>
</form>
<?php if (isset($_GET['a'])) echo $_GET['a'] ?>

пробелов нет вообще. Что я делаю не так?

...