Namazu-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cgi の中で namazu コマンドを使う方法について
横井です。
[namazu-users-ja] cgi の中で namazu コマンドを使う方法について について。
> 松本@愛媛大図書館システム管理係です。
はじめまして。
> Web用CGIの中でnamazu検索システムを利用する場合
> namazu.cgiは利用できるのですがnamazuコマンドは
> > Your should use "namazu.cgi" instead of" namazu" command.
> というメッセージがでて利用できません。
> Ver.1.X系のnamazuでは利用できていたのですが,Ver.2.X系で
> namazuコマンドを利用する方法はないのでしょうか。
僕もそれには困りました。
出力結果をカスタマイズしたい時には困りますよね。
そこで僕はソースを修正して使っています。
このメールにつけたパッチ(Namazu-2.0.9 用です)を利用してsrc/namazu-cmd.c
を変更すれば
OK です。
試した事はないのですが、環境変数QUERY_STRING またはSCRIPT_NAME を
空にしてからnamazu コマンドを実行でもよいと思います。
namazu-cmd.c.diff ここから==
--- namazu-cmd.c.org Mon Dec 3 11:32:41 2001
+++ namazu-cmd.c Mon Dec 3 11:33:46 2001
@@ -309,7 +309,9 @@
nmz_set_lang("");
+/*
if (getenv("QUERY_STRING") && getenv("SCRIPT_NAME")) {
+*/
/*
* If invoked as CGI, print a help message and exit.
*
@@ -319,10 +321,13 @@
* since 1.9.14, they are different and we cannot
* use "namazu" command as CGI any longer.
*/
+/*
printf("%s %s" CRLF CRLF, MSG_MIME_HEADER, contenttype);
printf("You should use \"namazu.cgi\" instead of \"namazu\" command
.");
exit(EXIT_FAILURE);
} else if (argc == 1) {
+*/
+ if (argc == 1) {
show_mini_usage();
exit(EXIT_FAILURE);
} else {
namazu-cmd.c.diff ここまで==
> cgiサンプル
> -------------------
> #! /usr/bin/sh
> usr/local/bin/namazu "${FORM_key}" /usr/local/var/namazu/index/test |
> test.awk
> -------------------
> 上記サンプルは,ブラウザのFORM上の"key"として受け取ったデータを元に
> namazuで検索し,検索結果をtest.awkで整形し表示させるものです。
省略しているだけだと思いますが、${FORM_key}の汚染チェックは
行う必要があります。
${FORM_key} に「test";コマンド 」などと書かれたら
多分コマンドが実行されてしまいます。
========================
横井
yokoi@xxxxxxxxx
========================