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

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

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

А вот + на пробел чтобы не менялся, пока не знаю как сделать...
...
Рейтинг: 0 / 0
15.04.2009, 00:01:09
    #35931954
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ '+' заменяется пробелом при передаче на сервер
ArbuzА вот + на пробел чтобы не менялся, пока не знаю как сделать...
"+" это спецсимвол, замените его на %2B
...
Рейтинг: 0 / 0
15.04.2009, 22:37:17
    #35934696
Arbuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ '+' заменяется пробелом при передаче на сервер
так и делаю, после encodeURIComponent() проверял через alert() - %2B
а на сервер приходит пробел.
...
Рейтинг: 0 / 0
15.04.2009, 22:46:35
    #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
15.04.2009, 23:23:07
    #35934732
йайайайа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ '+' заменяется пробелом при передаче на сервер
Код: plaintext
1.
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
лишнее
...
Рейтинг: 0 / 0
16.04.2009, 12:26:32
    #35935714
Arbuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ '+' заменяется пробелом при передаче на сервер
нет, не лишнее.
...
Рейтинг: 0 / 0
16.04.2009, 12:28:26
    #35935722
Arbuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ '+' заменяется пробелом при передаче на сервер
В смысле есть и русские символы, поэтому не лишнее.
...
Рейтинг: 0 / 0
16.04.2009, 21:57:47
    #35937407
Символ '+' заменяется пробелом при передаче на сервер
У меня все нормально работает. А зачем $HTTP_POST_VARS ? это же вроде depreciated.
Используйте $_POST. А заголовок действительно нужен, сорри - написал не подумав.
Да и к тому же, ведь символ '/' правильно обработался, может у Вас в скрипте где нибудь значение изменяется?
...
Рейтинг: 0 / 0
16.04.2009, 22:52:30
    #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]