Вверх ↑
Этот топик читают: Гость
Администрация
Ответов: 15294
Рейтинг: 1518
#16: 2007-06-15 14:29:56 ЛС | профиль | цитата
Ну при использование PHP данные можно и в обычном HEX-е посылать, тогда декодировать на стороне сервера ничего не надо. Скажем в примере выше можно послать:
test=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82

карма: 26
0
Ответов: 574
Рейтинг: 1
#17: 2007-06-15 15:21:25 ЛС | профиль | цитата
Dilma, не пропускай мои вопросы, пожалуйста! Мне нужно отправить на сервер в целости и сохранности текст, как он есть. Ты посоветовал его кодировать через JS функцией escape. Закодировал. А как раскодировать мне его, чтобы вывести на экран русский текст, а не кодировку?

Dilma писал(а):
Скажем в примере выше можно послать:


Гм.. Ты говоришь не надо. А у меня эти данные не декодировались сами... Пришлось с помощью PHP декодировать твой текст функцией hexdec(). Тогда получил 6.46047762252E+028.

Хорошо, а как мне с помощью JS закодировать данные в HEX? Или пусть останется UTF8. Но раскодировать не могу... Получается, что JS функция escape не кодирует по алгоритму UTF8 текст... Ведь декодировать его не получается...
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#18: 2007-06-15 15:36:35 ЛС | профиль | цитата
Я, если честно, вот так с ходу не скажу чем escape декодировать на стороне сервера. Однако вариант с HEX значениями работать должен. На стороне клиента такое преобразование делается через компонент:
Add(CallFunc,5833734,112,28)
{
Args=1
Name="encodeURI"
IgnoreResult=1
}
тогда передача параметра test с любыми символами в тексте будет выглядеть так:
Add(XMLHttpRequest,12854287,224,28)
{
Method=1
}
Add(StrCat,13351609,175,28)
{
Str1="test="
link(onStrCat,12854287:doOpen,[])
}
Add(CallFunc,5833734,126,28)
{
Args=1
Name="encodeURI"
IgnoreResult=1
link(onPrint,13351609:doStrCat,[])
}
Add(DoData,10134701,77,28)
{
Data=String(привет мир!!!)
link(onEventData,5833734:doPrint,[])
}

как я уже сказал URL кодированные параметры PHP декодирует автоматом и быть иначе просто не может. Поскольку данные из любой HTML формы именно в таком виде и передаются на сервере.

Yuriy писал(а):
А у меня эти данные не декодировались сами...

Ну можно еще на несколько постов заниматься угадыванием где это "у меня", какие данные, и кто там пыталяс с ними что-то сделать...
карма: 26
0
Ответов: 574
Рейтинг: 1
#19: 2007-06-15 19:54:12 ЛС | профиль | цитата
Dilma писал(а):
Однако вариант с HEX значениями работать должен. На стороне клиента такое преобразование делается через компонент:


Отлично! То, что нужно!

Спасибо, Дима, научил пользоваться AJAX!!!

Но... Символ "&" никак не кодируется и начиная с него передаваемый на сервер текст обрывается. Почему - понятно:

Dilma писал(а):
передача параметров на сервер через POST запрос выглядит как посылка контента ввиде:
<param name 1>=<param value>[&<param name 2>=<param value]...


А как же быть, если я хочу передать этот символ на сервер? Заменять его перед отправкой с помощью JS на другой?
карма: 0

0
Ответов: 574
Рейтинг: 1
#20: 2007-06-16 20:12:18 ЛС | профиль | цитата
Ура! Нашёл решение! Уже столько стандартных функций JS перечитал!

Если использовать приведённую тобой функцию "encodeURI", то будет проблема, описанная мной выше. А, используя функцию "encodeURIComponent", проблема уходит! Спецсимволы также стали кодироваться в HEX!

Вот, я вроде узнал всё, что мне нужно знать об AJAX!

Дмитрий, большой тебе респект!
карма: 0

0
Ответов: 574
Рейтинг: 1
#21: 2007-06-17 19:50:31 ЛС | профиль | цитата
Yuriy писал(а):
Вот, я вроде узнал всё, что мне нужно знать об AJAX!


Может быть... Но есть важный вопрос.

После пересылки данных и выдачи их на экран у меня текст стал появляться в другой кодировке. Например, послал своё имя через POST, php вывел его на экран вот так: Юрий. Что делать - не знаю. Отчего так - не пойму. Ведь когда я с тобой выше всё это обсуждал, у меня этих проблем не было. А откуда взялась сейчас - не знаю. Самое интересное, что с данными я не проделываю никаких операций. А пример по теме, обсуждаемой выше, у меня работает прекрасно! Все кодировки в норме! Вот это меня и бесит!

Как думаешь, в чём дело?
карма: 0

0
Ответов: 574
Рейтинг: 1
#22: 2007-06-18 10:31:38 ЛС | профиль | цитата
Щас начал удалять из своего кода, где отображается неправильная кодировка, всё лишнее. У меня там была такая строка

header("Content-type: text/html; charset=windows-1251");[/code]

она также мешала работе. Почему-то, с кодировкой windows-1251 полученный запрос отображается в том виде, что я писал выше:

[quote=Yuriy]php вывел его на экран вот так: Юрий[/quote]

Типа, понял в чём дело. Открываю свой пример, удалив эту строку, а кодировка всё равно не поменялась! Да в чём же дело! Ведь в браузере у меня стоит кодировка Автовыбор! Открываю другой пример для проверки - всё нормально с кодировкой! БЕСЯЧКА! Навожу курсор на вкладку с моей страницей в браузере, смотрю, а там написано, что кодировка документа windows-1251!!! С КАКОЙ РАДОСТИ? У меня НИГДЕ нет этого! Рядом пример смотрю - там вообще нет информации о кодировке, потому он и работает.

[b]Главный вопрос, Дима: как мне этот присланный запрос обработать с помощью PHP так, чтобы он был в кодировке windows-1251?[/b]
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#23: 2007-06-18 14:09:18 ЛС | профиль | цитата
Dilma писал(а):
Ну можно еще на несколько постов заниматься угадыванием где это "у меня", какие данные, и кто там пытался с ними что-то сделать...

карма: 26
0
Ответов: 574
Рейтинг: 1
#24: 2007-06-18 20:28:18 ЛС | профиль | цитата
Я на другом форуме спросил. Просто ты часто пропадаешь. Мне помогли вот как: http://forum.php.su/topic.php?forum=1&topic=325&start=1
карма: 0

0
Ответов: 574
Рейтинг: 1
#25: 2007-07-03 20:17:25 ЛС | профиль | цитата
Лучше бы я не открывал AJAX в FF… Dilma, а что нужно приписать в наш пример, чтобы AJAX работал и с браузером Mozilla Firefox?

P. S. Opera - Forever!
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#26: 2007-07-03 21:00:18 ЛС | профиль | цитата
Yuriy писал(а):
чтобы AJAX работал и с браузером Mozilla Firefox?

в каком смысле?
карма: 26
0
Ответов: 574
Рейтинг: 1
#27: 2007-07-03 21:11:30 ЛС | профиль | цитата
Наш пример AJAX не работает в FireFox.
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#28: 2007-07-03 23:04:17 ЛС | профиль | цитата
Yuriy, видимо имеется ввиду, что не работает XMLHttpRequest. В любом случае данных не достаточно. Побробнее описать нужно.
карма: 26
0
Ответов: 574
Рейтинг: 1
#29: 2007-07-03 23:21:32 ЛС | профиль | цитата
Ну вот, попробуй вот это в FF запустить. Ответ на запрос не увидишь.

Файл index.html:

code_1631.txt

Файл test.php:

<?php

echo $_POST['text'];

?>
карма: 0

0
файлы: 1code_1631.txt [1KB] [680]
Администрация
Ответов: 15294
Рейтинг: 1518
#30: 2007-07-03 23:27:08 ЛС | профиль | цитата
Yuriy писал(а):
попробуй вот это в FF запустить

не стоит.

Dilma писал(а):
Побробнее описать нужно.

На каком сервере и откуда запускался пример?
Какой адрес примера?
карма: 26
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)