Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Проблема с URL через location.href


Автор: Black 21.12.2004, 00:16
Необходимо перезагрузить скрытый фрейм (для отправки данных скрипту обработчику), делаю так:

Код

parent.frames['submit'].location.href = 'chat.php?mess=' + str + '&colore=' + document.color.red.value;


Так вот если передать в переменной mess любой символ + или # или & или \, то скрипту обработчику (chat.php) передается пустая переменная $mess.

Интересно почему? как исправить и научить мой чат показывать +#&\




Автор: sergejzr 21.12.2004, 00:37
Надо будет кодировать, а на сервере раскодировать.
Посмотри здесь:
http://forum.vingrad.ru/index.php?showtopic=25887&hl=encode#

ПС:
А почему POST не сделаешь?

Автор: Black 21.12.2004, 01:12
Почему то не помогает :-) видимо символы особые кстати они используются в URL странице видимо мой Мозилла путает :-0

Я нашел другой выход: перед отправкой данных я эти символы (+#&) кодирую определенной последовательностью кодов, а затем в скрипте PHP заменяю эти коды на соответствующие кодам символы smile тупо, зато работает !!!

А символ \ не работал по другой причине ....

Цитата
А почему POST не сделаешь?

А как это можно сделать??? мне же нужно обновлять скрытый фрейм, там вроде только ссылкой можно :-) или JavaScript и через POST может передавать... если может, то объясните пожалуйста как...

Автор: sergejzr 21.12.2004, 01:21
Скрытыми элементами.
В скрытом фрейме имей такой элемент.
Код
<form id="MyForm">
<input type="hidden" id="message"></input>
</form>


перед отправкой:
Код
document.getElementById("message").value="твой мессага";
document.getElementById("MyForm").post();


Я код "навскидку" написал smile. Если ошибки будут, сообщай smile
Не знаю, придётся ли перекодировать там символы тоже, но тожно знаю, что поместится туда больше и в УРЛе не будут болтаться

Автор: Black 21.12.2004, 01:30
ОК, т.е. POST можно через формы передавать, да я слышал что через пост больше данных передать мона, т.к. браузеры обрезают GET запросы, правда у меня ограничение на кол-во символов в чате, да и за скрытым фреймом URL не видно, поэтому мона обойтись и без POST, хотя я подумаю ...

Автор: Sardar 21.12.2004, 01:40
sergej.z ну почти так..., вернее не совсем так... нет совсем не так smile
HTML
<form name="MyForm" method="POST" target="invisible_frame">
<input type="hidden" name="message"></input>
</form>

Код
document.forms.MyForm.elements.message="Test message";
document.forms.MyForm.submit();


PHP-DIRECTOR escape/unescape созданны для URL кодирования, если у тебя не пашет, то покажи код smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)