Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как закодировать строку для передачи через GET

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
mif
Отправлено: 02 Сентября, 2008 - 17:45:45
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Я пытаюсь реализовать взаимодействие двух IE окон и сервера. Окна win1.php и win2.php. Первое окно вызывает второе:
CODE (text):
скопировать код в буфер обмена
  1.  var myVar = new Array();
  2. myVar = window.showModalDialog("win2.php?type=" + jsType + "&ID=".......

Потом во второе окно пользователь вводит данные. Эти данные опять же с помощью JS возвращаются в массив myVar.. вобщем до этого окна взаимодействуют на компьютере клиента...
А вот теперь у первого окна есть данные введенные клиентом, JS уже в win1 собирает их в GET строку, и отправляю на сервер:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. var getVar="win1.php?act=" + myVar["varWin2_1"] + "&name=" + myVar["varWin2_2"] + ..........;
  3. window.location.href = getVar;
  4.  

Это такой метод передачи данных между JS и PHP. location отправляю именно с первой страницы, чтобы она сразу и обновилась, и чтобы можно было гарантировать, что данные до сервера дошли обработались, и на обновленную win1.php будут выведены.

НО ТУТ Одна беда. Когда GET-строка формируется браузером из формы, то недопустимые символы внутри значений передаваемых переменных автоматом переводятся в шестнадцатеричный вид, а в моем случае ничего автоматом не переводится. Если пользователь использовал какой-нибудь "&" "+" "?" и т.д. то все пропало - данные доходят неполностью. Вот че делать? Как в JS до window.location спрятать запретные символы должным образом?

Или может я вобще не лучший путь передачи данных между окнами IE, и между JS и PHP выбрал? Но других на JS PHP пока ненарыл. Растерялся
(Добавление)
Кстати функция escape похожа на то, что мне нужно.. но вот знак "+" даже после нее до PHP не доходит. Может конечно не только "+" теряется.
 
 Top
mif
Отправлено: 02 Сентября, 2008 - 21:42:34
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Частично решил.. но вот "+" так и не проходит.
Вот это:
CODE (text):
скопировать код в буфер обмена
  1. var getVar="win1.php?act=" + myVar["varWin2_1"] + "&name=" + myVar["varWin2_2"] + ..........;

Сделал вот так:
CODE (text):
скопировать код в буфер обмена
  1. var getVar="win1.php?act=" + escape(myVar["varWin2_1"]) + "&name=" + escape(myVar["varWin2_2"]) + ..........;

А уже на сервере конечно пришлось делать так: http://www[dot]sysman[dot]ru/index.php?showtopic=8855
Иначе кириллица выглядит немного непонятно.

Куда девается "+" я пока не понял.
 
 Top
_kT
Отправлено: 04 Сентября, 2008 - 16:48:56
Post Id



Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Июль 2008  
Откуда: Новокузнецк


Помог: 0 раз(а)




я тут нашёл один алгоритм md5 на JS сделанный , щас через него передаю )) точно не будет лишних символов - тка фигово что назад не расшифровать и использовать его можно тока для првекри данные (например логин и пароля)


-----
http://www[dot]razbor[dot]org/ - б/у автозапчасти
 
 Top
valenok
Отправлено: 04 Сентября, 2008 - 18:45:23
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




escape()


-----
Truly yours, Sasha.
 
My status
 Top
mif
Отправлено: 06 Сентября, 2008 - 21:55:53
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




valenok пишет:
escape()

Спасибо, но про escape() я уже и сам написал.. И про то, что символ "+" теряется при этом почему-то. Я надеялся, что можно будет обходиться без плюса без особого напряга, и тут же обнаружил.. что номера телефонов в международном формате содержат "+". Огорчение А у меня номера телефонов сотовых должны использоваться в системе sms-уведомлений. И номера нужны как-раз в международном формате. Придется дальше думать.
 
 Top
valenok
Отправлено: 06 Сентября, 2008 - 22:08:33
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




encodeURI()
encodeURIComponent()
escape()


-----
Truly yours, Sasha.
 
My status
 Top
mif
Отправлено: 08 Сентября, 2008 - 01:09:39
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




А вот ссылка с описанием функций: http://xhtml[dot]ru/2006/05/25/encodestring/
Из нее становится понятным, почему "+" у меня не проходил.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB