(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" 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.