2008年12月16日

[Apache-Users 7230] Re:リクエストから、POSTパラメータを取り出す

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

log_transactionはリクエストが読み込み終わった後に呼ばれるので、
その中でリクエストを読もうとしたってだめです。
POSTデータをログに書き出すと勝手に解釈してコメントすると、
入力フィルターでリクエストを覗いて、モジュールのどこかに保持しておいて、
log_transactionでログに書き出せばいいと思いますよ。


On Tue, 16 Dec 2008 12:00:29 +0900
apache-users@xxxxx wrote:

> ** Apache ユーザーズメーリングリスト **
> ** 注意:このメールへの返信は Apache-Users へ行きます **
>
> こんにちは。
> Apacheモジュールほぼ初心者です。
>
> リクエストから、POSTパラメータを取り出す
>
> という簡単な?ことができずに困っています。
> CentOS 5.x
> Apache 2.0
> です。
>
> https://www.codeblog.org/blog/inoue/200612.html
> などを参考に試行錯誤して、以下のようなコーディングに至っていますが
> 何がおきているのか分かりません。。。
> =================================================================
> static int util_read(request_rec *r){
> int rc = OK;
>
> if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_ERROR)) != OK) {
> return rc;
> }
>
> if (ap_should_client_block(r)) {
> char buff[HUGE_STRING_LEN];
> int rsize, len_read, rpos=0;
> long length = r->remaining;
> const char **rbuf;
> *rbuf = (char*)apr_palloc(r->pool, length + 1);
>
> while ((len_read =
> ap_get_client_block(r, buff, sizeof(buff))) > 0) {
>
> if ((rpos + len_read) > length) {
> rsize = length - rpos;
> }
> else {
> rsize = len_read;
> }
> memcpy((char*)*rbuf + rpos, buff, rsize);
> rpos += rsize;
> }
>
> fprintf(stderr, "len=%d; %s\n", rc, rbuf);
> }
>
> return rc;
> }
>
>
> static int hoge_loging(request_rec *r){
> util_read(r);
> }
>
>
> static void hoge_register_hooks(apr_pool_t *p){
> ap_hook_log_transaction(hoge_loging, NULL, NULL, APR_HOOK_MIDDLE);
> }
>
> module AP_MODULE_DECLARE_DATA hoge_module = {
> STANDARD20_MODULE_STUFF,
> create_dir_config, /* create per-dir config structures */
> NULL, /* merge per-dir config structures */
> NULL, /* create per-server config structures */
> NULL, /* merge per-server config structures */
> NULL, /* table of config file commands */
> hoge_register_hooks /* register hooks */
> };
> =================================================================
>
> ログを見ると、こんな風になってます。
> len=0; ?
> len=0; (
>
> [Tue Dec 16 11:43:50 2008] [notice] child pid 21487 exit signal Aborted (6)
>
>
>
> お手本となるようなソースをご提供頂けないでしょうか。
> すみません。。
--
入退会・変更・配送一時停止は以下へ
http://mm.apache.jp/mailman/listinfo/apache-users


投稿者 xml-rpc : 2008年12月16日 20:44
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/80087
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。