Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: [apache-talk] POST-?????? (Was: unknown action 'member' '0')



(cначал сори - забыл Subj челевеческий сделать вместо того что скрипт шлет)

PY>> Имеем RH 6.0 + Apache 1.3.9 + rus 28.22 + mod_perl 1.21
PY>> Скрипт сидит через PerlHandler и читает POST-данные через $r->read(.....)
IO> Это, конечно, не очень решение, но все же: почему бы не
IO> воспользоваться libapreq (оно же Apache::Request) и вообще не заниматься
IO> разбором форм вручную?
Это конечно не ответ на вопрос ;-)

Смотрим реализацию того чем там пологается читать запрос
> int ApacheRequest___parse(ApacheRequest *req)
> {
>     request_rec *r = req->r;
> 
>     req->parsed = 1;
> 
>     if (r->method_number == M_POST) { 
>         const char *ct = ap_table_get(r->headers_in, "Content-type"); 
а именно вот это прекрасное место
>         if (ct && *ct == 'a' && strEQ(ct, DEFAULT_ENCTYPE)) {
                                  ^^^^^  строго равно не так ли ?
DEFAULT_ENCTYPE это разумеется
 'application/x-www-form-urlencoded'

а куда пойдет запрос с
 'application/x-www-form-urlencoded; charset=koi8-r'

куда ?????

>             return ApacheRequest_parse_urlencoded(req);
>         }
>         else if (ct && *ct == 'm' && strstr(ct, "multipart/form-data")) {
>            return ApacheRequest_parse_multipart(req); 
>         }
>         else {
а вот прямо вот сюда
>             ap_log_rerror(REQ_ERROR, 
>                           "[libapreq] unknown content-type: `%s'", ct); 
>             return HTTP_INTERNAL_SERVER_ERROR;
На эти грабли я уже нарвался с $r->content() - там тоже == вместо =~
А до этого доооооолго не мог понять чего это у меня на subscribe.ru
не могут Lynx пользоваться. На все что можно грешил у себя, но до
такого прикола еле додумался.

Так же просьба не передлагать CGI.pm - по исходникам все сводится
как и у $r->read() к обычному ap_get_client_block() у которого на входе сидит
не прочитаное поле хидера запроса. Так что вопросы остаются:

- кто нарывалcя ?
- Победили зверя ?
- напомните что за примочка "DigExt" у 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)'

>         }
>     } 
>     else {
>         return ApacheRequest_parse_urlencoded(req); 
>     }
> }

-------------------------------------------------
Pavel Yakovlev   http://www.citycat.ru/
WebMaster and coAuthor of CityCat project.
e-mail: hac@xxxxxxxxxx ICQ 8085803     PPY-RIPN
-------------------------------------------------
"If it looks like a bug, waddles like a bug, and quacks like a bug, its a quack!"


=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.