Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.07;
Скачать: CL | DM;

Вниз

Ошибка в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
15-1278489779
Виталий
2010-07-07 12:02
2010.11.07
Неясности в формате файла


2-1281896457
XillVikler
2010-08-15 22:20
2010.11.07
слежение за объектом


15-1280386453
бумбум
2010-07-29 10:54
2010.11.07
Имеет смысл ADOConnection1.Open ?


15-1280158011
AKE
2010-07-26 19:26
2010.11.07
Скажите это развод??


15-1280222834
12
2010-07-27 13:27
2010.11.07
О "природных" и "противоприродных" видах оружия