powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Символ '+' заменяется пробелом при передаче на сервер
11 сообщений из 11, страница 1 из 1
Символ '+' заменяется пробелом при передаче на сервер
    #35931425
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отправляю через xmlHttpRequest значение "DVD+/-RW"
На сервер через $HTTP_POST_VARS[] приходит "DVD /-RW"

функция encodeURIComponent() не помогает.
?
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35931886
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще подскажите пожалуйста, как лечить седующее:

Ставлю у блока div свойство overflow: scroll;
Opera нижнюю границу элемента прячет за полоской горизонтальной прокрутки.
Можно-ли вообще отключить горизонтальную прокрутку элемента?
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35931935
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вылечил.

А вот + на пробел чтобы не менялся, пока не знаю как сделать...
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35931954
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbuzА вот + на пробел чтобы не менялся, пока не знаю как сделать...
"+" это спецсимвол, замените его на %2B
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35934696
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так и делаю, после encodeURIComponent() проверял через alert() - %2B
а на сервер приходит пробел.
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35934703
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на клиенте
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
params='a='+encodeURIComponent('DVD+/-RW')+'&b='+encodeURIComponent(b)+ и так далее;
xmlHttp.open('POST','script.php',false)
xmlHttp.onreadystatechange=function()
{
   ...
}
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.send(params);
на сервере
Код: plaintext
$a=$HTTP_POST_VARS['a'];
приходит 'DVD /-RW'
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35934732
йайайайа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
лишнее
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35935714
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, не лишнее.
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35935722
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле есть и русские символы, поэтому не лишнее.
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35937407
У меня все нормально работает. А зачем $HTTP_POST_VARS ? это же вроде depreciated.
Используйте $_POST. А заголовок действительно нужен, сорри - написал не подумав.
Да и к тому же, ведь символ '/' правильно обработался, может у Вас в скрипте где нибудь значение изменяется?
...
Рейтинг: 0 / 0
Символ '+' заменяется пробелом при передаче на сервер
    #35937462
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался.
Оказывается, данные передавались вообще "прямым текстом".
На сервере
Код: plaintext
1.
$a=$HTTP_POST_VARS['a'];
$a=iconv('UTF-8','cp1251',stripslashes($a))
Поэтому и не заметил ошибки, другие символы и русские буквы передавались без проблем!
Извините, исправил свою ошибку. Здесь приводил упрощенный пример.
Вот настоящий фрагмент, теперь работает без проблем:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
if	(flg!='news' && flg!='guests' && flg!='block1' && flg!='block2')
	{
		params='im_flg='+encodeURIComponent(flg)+'&im_id='+id;
		vflg='search'; 
	}
else
	{
		params='im_flg='+flg+'&im_id='+id;
		vflg=flg; vid=id;
	}
xmlHttp.open('POST','im_get.php',false);
xmlHttp.onreadystatechange=fhandleRequestStateChange;
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.send(params);
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Символ '+' заменяется пробелом при передаче на сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]