• ベストアンサー

KENTさんのところのサイト内検索CGIについて

KENTさんの書籍「KENTとはじめるCGI厳選Perlスクリプト集」というものの中から、サイト内検索CGIを使用してみようと 思ったのですが、ちょっと形態を自分なりに変更しているんですが、わからなくなってしまったので教えてください。 現在はローカルでテスト中なのでCGIファイル自体は127.0.0.1の中にあります。 実際に検索を行いたいファイルはWeb上にあるので、そちらの指定は 「http://www.***」というようにしています。 # 対象ディレクトリ # → / からのフルパスで指定もよい $finddir = "http://www.***"; # 上記「対象ディレクトリ」のURL # → 最後は / で閉じない $findurl = "http://www.***"; と変更したんですが、「ヒットしませんでした」という結果に…。 検索したいキーワードはきちんと表示されてるのでデータの送受信はうまくいってると思うんですが。 もちろんKENTさんのところで質問した方がいいのでしょうが、できるだけ回答が早く欲しいので、 みなさんに聞いてもらおうと思いこちらで質問しました。 おわかりの方いらっしゃったら教えてください。 お願いします。

  • w-inty
  • お礼率72% (1169/1618)
  • CGI
  • 回答数12
  • ありがとう数18

質問者が選んだベストアンサー

  • ベストアンサー
  • 78tch
  • ベストアンサー率31% (50/157)
回答No.12

ども、本見てきました。まず。「170Pから173Pをしっかり読んでよっ!!!」 $finddir = "../a"; $findurl = "http://www.***/a"; @targets("a"); か $finddir = ".."; $findurl = "http://www.***"; @targets("a"); でしょう。(もちろんaはあなたの検索かけたいディレクトリですよ) その上で、ローカルでも試したければローカルでは $findurl = "http://192.168.0.1"; とかでしょう。(IPは適宜実IPに。) 170Pに載ってる範囲をその時々の環境に合わせるのです。うまく動かないのは単なる設定漏れ、設定間違いでしょう。 置き換えて読んだときに../では/がダブりませんでしたか?そこで「あ、"../"だと..//aになるから".."にすれば../aになるな」って読まなきゃですよ。 でもこれいいですね。僕も使おうっと。

w-inty
質問者

お礼

回答ありがとうございます。 あえて何も設定を変更しないでやったらちゃんとできました…。ということは設定を変えたところが間違っているということになりますよね。 今現在FLASHのテキストボックスに入力→ボタンを押す(ここまではFLASH)→cgi実行、のようにしてるんですが、 テキストボックスへ入力し、ボタンを押すと、cgiの本来キーワードを入れるところに勝手にキーワードが入ります。 (テキストボックスに入れたもの) 検索結果の件数もいっしょです。 ですがページ数がやっぱり膨大な数になってしまうんです。 キーワードの入力を別の場所からして、その値をひっぱってくる、っていう単純なことさえも満足にできてません。。 FLASHで入力、ボタンを押す、キーワードが勝手に入る、すぐにストップさせ、cgiの方の「検索」ボタンを押すとちゃんと検索結果が表示されます。 これって何がおかしいのかわかりますか? FLASHの方のボタンのアクションは on(press){ getURL("http://www.***/cgi_script/wfinder.cgi","NAKA","POST"); } です。

w-inty
質問者

補足

すいません、自己解決です。 cond(ANDとOR)とview(10-40件)もすべてFLASHからデータ送信するようにしたら無事表示されました。 ありがとうございました。 何度も何度も根気よく教えてくださって本当にありがとうございました。

その他の回答 (11)

  • feininger
  • ベストアンサー率41% (74/180)
回答No.1

どのようなPerlスクリプトかは知らないので外しているかもしれませんが、 サイト検索と呼ばれるものには2つのタイプがあります。 1) 自サイト内のファイルを読み出して検索するタイプ 2) 他サイトへアクセスしてデータを受信し検索するタイプ 前者の場合はファイルを読み出せる必要があります。CGIがアクセスできないファイルは検索できません。 後者の場合は他サイトへアクセスできる必要があります。ローカルでのテストでは大丈夫かと思いますが、プロバイダのサーバーではセキュリティ上制限をかけていることがあります。(Socket不可など) w-intyさんが行おうとしているのは後者のようですが、そのPerlスクリプトは2に対応していますか? $finddir というのはディレクトリ指定(/cgi-bin/***など)の変数だと思われます。つまり1タイプ。 $findurl というURL指定(http://***)の変数だと思われます。つまり2タイプ。

関連するQ&A

  • サイト内検索の検索結果

    現在、とほほのWWW入門(http://tohoho.wakusei.ne.jp/www.htm) というサイトで見つけたフリーのCGIを使ってサイト内検索機能を設置しました。 キーワードを入力して検索結果が出るところまでは上手くいったのですが、検索されたページのリンク先アドレスの途中に/html/が入ってしまい、ページが表示されません。 ちなみに以下のようにファイルを置いてます。 -------------------------------------------- ├cgi-bin | └wsrch313 |    └wwwsrch.cgi ├html | └検索対象のフォルダ | └logs -------------------------------------------- 上記のものを見てもわかると思いますが、 cgiのファイルはcgi-binフォルダ htmlのファイルはhtmlフォルダに入れています。 cgiファイルの検索対象を指定する部分には ../../html/検索対象フォルダ と入力していて、上記のもの以外では 検索結果が出ません。(ちなみにhttp://www~というフォルダ指定は出来ないみたいです。) こういった場合どのように検索対象フォルダを指定すればいいのでしょうか。ご教授お願いします。

    • ベストアンサー
    • CGI
  • サイト内検索CGIの仕組みってどんなもの?

    自作サイト内の検索用のcgiを作成したいのですが、 さっぱりしくみがわかりません。 1.検索するキーワードを入力      ↓ 2.1で入力されたキーワードをもとに検索を行う というような流れはわかるんですが、2の中身がどのようにかいていいのか…。 データの送受信程度のことはできるんですが。。。 フリーのプログラムではなく、自分で作成したいんです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIが動かないのですが。

    自宅マシンWWWサーバ化計画 http://www.kent-web.com/www/anhttpd/www1.html このサイトを参考にしているのですが、 HTMLファイルは開くのですが、 CGIは開けません。 PerlのインストールはC:\perlで、 ホームページ用のフォルダはC:\WWW\homeです。 この中にindex.htmlとhello.cgiを入れて、 127.0.0.1でhtmlファイルは開きますが、 127.0.0.1/hello.cgiでhello.cgiは開けませんでした。 pathが通ってないのでしょうか? よろしくお願いします。

  • perl cgiでサ-バ内検索

    perl cgiで 自分のサ-バ内に置いてある*.c,*.h等の ソ-スファイル内のkeyword検索(文字列等)の できる無料perl cgiを探しています。 URLの検索するcgiは、多数見つかったのですが、 デ-タ検索が見つかりません。 どなたか教えて下さい。

  • CGIを使えないサイトでのキーワード検索

    ホームページに検索機能をつけたいと考います。 自分で用意したキーワードの中から選択させるような方法で、ページ毎にキーワードを決めて、自分のサイト内の検索ができるようにしたいです。 ホームページはCGIを使用が不可のサイトなのですが、CGI等を使わず、キーワード検索を作成するにはどうしたら良いでしょうか? ご存じでしたら教えて頂けませんでしょうか?

    • 締切済み
    • CGI
  • CGI timeoutって? IISでのcgi設定

    すみません質問させてください。 今、XPでIISをインストールしてCGIが動くようにしてるんですが うまくいきません。 http://localhost/hello.cgi というurlで実行できると思うんですが、 いつまでも読み込んでるだけで、実行されない感じです。 CGI timeoutといわれます。 実行するCGIはHELLOと表示する単純なものです。 また、.cgiファイルは実行プログラムをC:\perl\bin\perl.exeに 指定しています。 IISでは、規定のWEBサイトのプロパティ>ホームディレクトリの 「構成」で.cgiの実行ファイルをC:\perl\bin\perl.exeに指定しています。 とりあえずやるだけやったと思ってるんですが、うまくいかないのはどうしてでしょう。 よろしくお願いします。

    • 締切済み
    • CGI
  • サイト内のファイル検索

    サイト内のファイルを検索できるcgiを探しています。 ページ内の文字列に対しての検索ではなく、ファイルそのものの検索ができるようにしたいのです。 ページ内にテキストとしてのキーワードがなく、検索対象になるページ数も多いので、どうして良いのか困っています。 例えば「HPの閲覧者からは見えないように、各ページにキーワードをMETAタグのように埋め込んで検索する」もしくは「簡易データベースを作る」という方法になるのでしょうか? もしくはCGIだけでなく、Java Scriptでもできるのでしょうか? ちなみに検索の対象になるファイルは500ページを越えています。 CGI初心者が設置するには難しいのかもしれませんが、どなたかご教授をお願いします。 また、参考になりそうなHPがありましたら、教えていただけないでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • KENTさんの検索エンジンCGIで…

    "Net Cruiser"というKENTさんの検索エンジンCGIを使っています。現在は特に改造する事無く使っているのですが、デフォルトだと新着サイトとオススメサイトの2種類しかアイコンが使えません。 これを、例えば"更新しましたアイコン"や"只今メンテナンス中アイコン"などという様に、アイコンを増やす事ができたらなぁ…と思います。 可能であればどこをどの様に書き換えればいいのかを教えて下さい。 また、自分で登録するタイプにしているのですが、最初の方にいいサイトを登録してしまったので、検索結果が新しい順に表示されてしまうと、いいサイト程検索の後の方に来る様になってしまいました。 検索した時に、推奨サイトが最初の方に表示される様にする事は可能ですか? どちらか片方の質問の回答でもかまいませんのでお願いします。

    • 締切済み
    • CGI
  • サイト内検索cgiの修正について

    http://www.kent-web.com/cgi/wfinder.cgi を使用しています。 ですが、これのキーワードボックスを使うのではなく、FLASHで作成したテキストボックスとボタンを使用して 検索を行いたいのです。 <FORM ACTION="$script" METHOD="POST"> <INPUT TYPE=TEXT NAME=word STYLE="BORDER-STYLE:SOLID; BORDER-COLOR:GRAY; BORDER-WIDTH:1;" SIZE=40 VALUE="$in{'word'}"> <INPUT TYPE=SUBMIT STYLE="BORDER-STYLE:SOLID; BORDER-COLOR:GRAY; BACKGROUND-COLOR:SILVER; BORDER-WIDTH:1;" VALUE="検索"> <BR><BR> <B>表\示件数</B> <SELECT NAME="view"> として、テキストボックスに、FLASHのテキストボックスからデータを入れることはできましたが、この後、「検索」ボタンを押さなくてはなりません。 そうではなく、FLASHの検索ボタンをおしたら検索結果が出るようにしたいのです。 上記のcgiファイルをどのように変更すればいいのでしょうか?

    • ベストアンサー
    • CGI
  • IISでCGIの設定がうまくいきません

    すみません質問させてください。 今、XPでIISをインストールしてCGIが動くようにしてるんですが うまくいきません。 http://localhost/hello.cgi というurlで実行できると思うんですが、 いつまでも読み込んでるだけで、実行されない感じです。 実行するCGIはHELLOと表示する単純なものです。 また、.cgiファイルは実行プログラムをC:\perl\bin\perl.exeに 指定しています。 IISでは、規定のWEBサイトのプロパティ>ホームディレクトリの 「構成」で.cgiの実行ファイルをC:\perl\perl.exeに指定しています。 とりあえずやるだけやったと思ってるんですが、うまくいかないのはどうしてでしょう。 よろしくお願いします。

専門家に質問してみよう