Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];

Вниз

Ошибка в TIdHTTPServer   Найти похожие ветки 

 
Добежал   (2008-12-09 11:30) [0]

Странный глюк в TIdHTTPServer, если в запросе есть и GET, и POST-данные. Картинка:

http://pic.ipicture.ru/uploads/081209/954A2LW4CN.jpg

В нераспарсенных параметрах видно, что идут POST-данные, потом перевод строки и идут GET-данные.
Соответственно, в распарсенных параметрах ARequestInfo.Params последний параметр выявляется неправильно, к последнему POST-данному прибавляются GET-данные. А если GET-параметров несколько - то в результате получается увеличение количества параметров.

Пример:

- имеем POST-данные такие: action=send&id=1
- имеем GET-данные: /?page=4

В результате, в ARequestInfo.Params окажется 2 записи:

1) action=send
2) id=1#13#10page=4

Что, естественно, неверно. Последнее POST-данное слилось с GET-данными. И так происходит всегда.

Вопрос - кто сталкивался с таким глюком, как лечить? Используется Indy от D7. Обновлять сам Indy не очень хочется, подозреваю в дальнейшем кто-то может откомпилить на опять дефолтном дельфи - и встретит такие грабли, что потом запаришься разбираться.

Судя по всему, просто буду вручную парсить POST-параметры. Но хочу точный алгоритм:

1) нужно выделить строку от первого символа (или предыдущего параметра) до знака амперсанда "&" (или конца строки)

2) в этой строке должен быть символ равно "=". До него стоит название параметра, после него стоит значение параметра.

3) над названием параметра и значением параметра нужно провести преобразование по некоему алгоритму, чтобы превратить в win-1251 символы.
Где в indy этот алгоритм преобразования? По-моему, где-то должен быть... Чтобы все было НАИБОЛЕЕ корректно или готовую функцию трансляции параметров...

Я ничего не забыл?

Или возможны другие варианты решения проблемы?


 
Добежал   (2008-12-09 15:45) [1]

up? (


 
Cobalt ©   (2008-12-09 18:08) [2]

Патч к "Indy от D7"?

А чтобы не откомпилили на "дефолтном" - вставь какой-нить define в патче, а в своём модуле проверяй.


 
Cobalt ©   (2008-12-09 18:08) [3]

Сделай патч к "Indy от D7"?

А чтобы не откомпилили на "дефолтном" - вставь какой-нить define в патче, а в своём модуле проверяй.


 
Добежал   (2008-12-10 11:49) [4]

а, сделал распарсивание параметров просто вручную...



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
2-1281891701
Радуга
2010-08-15 21:01
2010.11.07
403 Forbidden при массовых запросах к сайту. Как обойти?


15-1280176169
Юрий
2010-07-27 00:29
2010.11.07
С днем рождения ! 27 июля 2010 вторник


15-1280325567
sniknik
2010-07-28 17:59
2010.11.07
Проверьте пожалуйста, если у вас больше чем один домен...


4-1240991885
Zalum
2009-04-29 11:58
2010.11.07
Передать работающему приложению параметры


15-1279526811
Kerk
2010-07-19 12:06
2010.11.07
Всемастаковский шахматный турнир





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский