• ベストアンサー

複数のCGIの実行結果の取得方法

お世話になります。 掲示板への投稿の際、管理者審査が必要な掲示板を複数設置しています。 その際、各掲示板に投稿があったかどうかを管理者が確認する際に、掲示板の数だけ管理者としてログインし確認→別の掲示板へログインし確認→のループ作業が発生している状況です。 それらの作業をプログラムで一つの流れとして作れないものかと悩んでいます。 ちなみに現在は、最初の掲示板に管理者としてログインした際に、管理画面内でJSファイルから外部CGIを呼び出す形で <SCRIPT LANGUAGE=javascript src="./kanri.cgi"></SCRIPT> として各管理者用の掲示板を呼び出して、必要な部分の内容だけを出力するようにカスタマイズした状態で表示しています。(PASS等はクッキーで取得させています。) 上記のようにする事で掲示板の数だけ管理者としてログインしなくて済んでいるのですが、JSファイルで外部CGIの実行を70近く呼び出すようにしている為、表示される際の時間が物凄く遅いのがストレスに感じています。 これをプログラムで実現できればと思い、for文やwhile文、foreach文等の基本的動作についての解説を調べてはいるのですが、kanri1.cgi~kanri70.cgiまでのファイルの実行と、どのようにすればその結果を取得でき更に表示までできるのか・・など思うように調べられず悩んでいます。 ※シェルスクリプトでwgetで各kanri.cgi~kanri70.cgiの実行結果を取得し、その実行結果を >>でファイルに保存し表示するようにもしてみたのですが、結果的には表示までが非常に遅く、やってる事はJSファイルで呼び出しているのと何らかわりない事に気がつきました。) 実現の仕方は色々あるかと存じますが、諸先輩方、何か参考になるようなアドバイスやご教授など頂けませんでしょか。

  • taku0
  • お礼率80% (160/199)
  • CGI
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • Kirishima
  • ベストアンサー率32% (155/480)
回答No.2

#1さんと同じ意見です。 同じスクリプトが複数設置されている状態のようなので、 審査用のスクリプトの部分の中で掲示板のログデータを読み込んでくるルーチンがあると思いますから、 それを掲示板の数だけ、while文などで順次ログデータを読んで表示するようにした審査用のcgiを用意すればいいと思います。 同じサーバー上で動作しているのであれば1つのcgiからすべての掲示板のログデータが読み出せると思います。

taku0
質問者

お礼

お返事遅くなり大変申し訳御座いませんでした。 while文で読み出せばよいんですね。 基礎から学習していきたいと思います。 また分からない点やつまずいた際にはお時間 ございましたらご掲示頂けますと助かります 有難う御座いました。

その他の回答 (1)

  • panick
  • ベストアンサー率40% (26/64)
回答No.1

>掲示板への投稿の際、管理者審査が必要な掲示板 この掲示板は、管理人の審査後に投稿内容が表示される仕組みのものですね? この70個の掲示板が同じタイプのものであれば、審査前の投稿データがある70個のログデータを読み取り、一括で審査処理する新たな審査専用のCGIを作成されるのが、使いやすく、合理的だと思います。

taku0
質問者

お礼

掲示板は同じタイプのものを使用している状況です。 もう少し頑張って調べてみたいと思います。 お忙しい所、有難う御座いました。

関連するQ&A

  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • CGIのスクリが勝手に実行されないようにするにはどうすればいいですか?

    CGIのスクリが勝手に実行されないようにするにはどうすればいいですか? IEとかでCGIファイルを開くと中に書いてあるperlスクリプトが開いた瞬間に実行されますよね。 もしそれが変なスクリプトだったら、勝手に実行されるのは非常に怖いです。 せめて、「このページのCGIを実行しますか」と警告が出てほしいです。 CGIが勝手に実行されないようにするにはどうすればいいですか? また、CGIファイルでは普通にIEで「ソースの表示」を押してもCGIの実行結果が表示されるだけです。 ブラウザからCGIのソースを表示する事はできますか?

  • htmlから、ファイル、もしくはCGI実行結果を表示

    htmlのページを開いたときに、部分的にCGIの実行結果、もしくはファイルの中身を表示することは出来ないでしょうか。「インラインフレームを設けて・・・」という意味ではなく、たとえばページを開くごとにある行の数字だけ数字が増えていく、といったカウンターのようなことが出来るようにしたい。 そういうCGIスクリプトを作っているので、CGIをまったく使わないというのは無しで、またSSIは使わないこと前提でお願いします。

    • ベストアンサー
    • Perl
  • perl リモートでコマンド実行結果取得

    perl 初心者です。 Perlでリモートログイン後grep結果を取得する方法で分からないことがあり質問しました。 rootユーザで実行するPPP.plスクリプト内で、他のサーバにsshでログイン後grepの結果を取得しようと考えていますが、rootユーザでPPP.plを実行しスクリプト内でsshを実行するとパスワードを聞かれてしまいます。 そこで、他のユーザAAAでPPP.plを実行し、sshを実行するとパスワードは聞かれない設定になっているそうです。(詳細は分かりませんが) そこで、実現方法について下記のように考えていますが、他の方法、sshのオプション等他の考えが、あれば教えてください。確認する環境がなくて実行していませんのであっているかも分かりません。 PPP.pl実行サーバ:server1 ssh先のサーバ:server2 PPP.plの実行ユーザ:ROOT パスワードが聞かれないserver1のユーザ:AAA server2のログインユーザ:AAA ※PPP.plの実行ユーザはrootから変更はできません --------------------------------------- #ユーザAAAに変更 system("su - AAA"); #server2のgrep結果取得 my @rtn_grep = `ssh -l AAA server2 grep test /var/log/msg.log`; if($? != 0){ exit; } ## grep結果を参照 XXXX #rootユーザに戻る system("exit"); -------------------------------- 以上です。宜しくお願い致します。

    • ベストアンサー
    • Perl
  • JSPの実行結果をHTMLに変換

    全然知らないので的外れの質問だったらゴメンなさい。 JSPやCGIの実行結果のHPに表が表示されているとします。 その場合、そのHPのソースを[表示]→[ソース]で表示しても、 HTML形式のように[TR][TD]等のタグって見れないし、もちろん その内容のデータも見れないですよね。 [ファイル]→[名前を付けて保存]を行なってもやはりソースは 確認できませんでした。 何がしたいかと言うと、JSPの実行結果で表示されるHPの表を HTML形式のようにデータ(タグ付)をソースで取得したいのです。 そんな事は可能なのでしょうか? 何やら、JSPの結果で表示されているHPをHTMLに変換して取得 するツールがあると聞いた事があるのですが、どこを探しても 該当するツールは見付かりませんでした。 上記の機能を実現する方法、またはツールがあれば教えて下さい。

    • ベストアンサー
    • HTML
  • CGIを実行した結果をファイルに保存したい。

    クライアント側からCGIを実行してサーバーから戻って来た実行結果データをクライアント側でバッチorスクリプト処理で保存したいのですが保存する手段がありましたらご助力ください。

    • 締切済み
    • CGI
  • EXEファイル実行結果の取得方法

    説明不足かと思いますが,質問させてください…。 例えば,EXEファイルで実行した結果だけを 取得し表示させるということは可能なのでしょうか? もし,知っている方がいらっしゃったら 何でもいいので教えて頂けませんか?

  • JavaScriptの値を、cgiに渡す方法を教えてください。

    JavaScriptの値を、cgiに渡す方法を教えてください。 jsファイルの変数に、テキストボックスの入力値が入っています。 それを、cgiに渡して、その変数の値を、ファイルに 書込みたいと考えています。 __test.html_________ <head><script src="keep.js"></script></head> <form name="f1" action="keep.js"> <input type="text" name="a_text"> <input type="button" value="クリック" onclick="keep()"> </form> _________________________ ___keep.js_______________ function keep() { var a_text = document.f1.a_text.value; ■この変数「a_text」をcgiファイルに渡したいです。 } __________________________ __●.cgi_______________ ■なんだかの方法で、上記keep.jsの変数、a_textを取得して、 この●.cgiでファイルをopenして、a_textの値を 書込みたいです。 ______________ よろしく、お願いします。

  • 最終更新日自動取得のようなCGIは難しいでしょうか

    お世話になります。 掲示板のログを、CGIにアクセスしただけで表示させたいと思っています。 掲示板CGIの中に下記の記述を加えているため、掲示板の中で表示させたい箇所に$allnumberと記述する事で、投稿記事の総数を表示できるようになっています。 -------------------- #総投記事数を表示 open(FH, "$room/log.cgi") or die; my $line = <FH>; my( $allnumber ) = $line =~ /^(?d*)/; close(FH); -------------------- マルチ掲示板CGIを使用しているので、$roomには各掲示板のIDが入力されます。 各掲示板の投稿数を表示する、単独のCGIスクリプトは難しいでしょうか。 最終更新日を自動的に取得して、表示するCGIのイメージです。 これらのCGI(仮に「lastup.cgi」とします)は、http://hogehoge.jp/lastup.cgi?./bbs/log.cgiと最終更新日を取得したいファイルを指定して、htmlファイルの表示させたい箇所に記述すると、指定したファイルの最終更新日が表示できるようになっているCGIがあります。 (※「./bbs/log.cgi」は、lastup.cgiから見た対象ファイルまでのパスです) (※「log.cgi」は、掲示板のログが保存されているファイルとします) このように、「http://hogehoge.com/~.cgi?./(掲示板ID)/log.cgi」と記述するだけで、htmlの好きな箇所に指定した掲示板の記事数を表示させるようなCGIはできないでしょうか。 私はこれまでにCGIをいくつか設置した経験や、改造した経験はありますが、いつもネットで検索して分かる範囲で簡単な改造しかできません。 お手数ではありますが、できる限り詳しく教えて頂けると嬉しく思います。 お力添えを頂けると助かります。 何卒、よろしく御願い致します。

  • crontab での実行結果が違う

    crontab でのスクリプト実行でほとほと困っています。 以下の処理で、 $test = "FILE"; @orglist = glob("$test*"); ・・・とIE からの実行では通常、配列に "FILE" の付く ファイルが全て格納されることを確認しています。 しかし、まったく同じスクリプトを crontab で 自動実行させてみると、何も配列に入ってこないことが わかりました。 cgi を実行させているマシンは FreeBSD 4.7-STABLE と あります。 何が原因なのでしょうか?

    • ベストアンサー
    • Perl