• ベストアンサー

CGIで他のページに処理を委譲

Perl初心者です。 CGIモジュールを用いてWEBサイトを制作しています。 特定の条件に応じて他のページに処理を委譲したいのですが、 どのようなやり方が一般的なのかを教えて頂きたいです。 requireを使えばそれらしいことが出来ますが、 他に何かやり方がありますでしょうか。 フレームワークなどは用いていません。

  • Perl
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • urakids
  • ベストアンサー率77% (7/9)
回答No.2

なるほど。そういう事だったんですね。 >他の言語のライブラリですと、forwardというメソッドが用意されており Javaのサブレットとかで用意されているやつですよね。 う~ん、そうなるとperlでは難しいのかなぁ。 すいません、私の知識不足ですね。 もしかしたら、そういった事に対応したモジュールがCPANあたりに あるのかもしれないですが、わからないです。 ごめんなさい。

sobacasu
質問者

お礼

perlではこのような処理の切り分け方は一般的でないのでしょうか。 CPANからモジュールを探せばいいとのご意見、参考にさせて頂きます。

その他の回答 (2)

  • uwi
  • ベストアンサー率74% (55/74)
回答No.3

LWPなどでリクエストを送るのダメですか? 例えば、HTTP::Liteで単純に書くと、 --- #何か処理 my $GET = 何か処理した結果; use HTTP::Lite; my $http = new HTTP::Lite; my $req = $http->request("http://localhost/b.cgi?" . $GET) or die "$!"; print $req; LWPならもっと複雑なこともできます。

sobacasu
質問者

お礼

回答有難う御座います。 LWPについて少し見てみましたが、 クライアントからhttp処理を行うための ライブラリのようですね。 サーバでの処理の切り分け方について調べていましたが、 こちらも今後の参考にさせて頂きます。

  • urakids
  • ベストアンサー率77% (7/9)
回答No.1

ニュアンス的に捉えづらい内容ですが。 他ページに処理を渡す場合は引数を渡すか Cookie、セッションなどを使うと良いと思いますよ。 また、requireは別ページというか別プログラムに データを渡している訳ではではありません。 例えば、a.cgiとb.cgiがあり、 a.cgi内でb.cgiがrequireされていた場合 a.cgiが呼ばれた際にb.cgiがrequireされている場所に 展開されて、a.cgiが起動するという流れになります。 なので、べつにb.cgiに処理が移されている訳ではありませんよ。

sobacasu
質問者

補足

ご回答有難う御座います。 Cookie、セッションのみでは複数のスクリプト間で データを引き継ぐことは出来ますが、処理を任せることは できませんね。 処理の委譲というのは、一回のhttpレスポンスの間に 処理を行わせるスクリプトを分岐させられないか ということが言いたかったのです。 例をあげますと、 あるフォームからデータを送る際、 データを処理するa.cgiで入力エラーを検出したら、 エラーの画面を表示するb.cgiに処理を行わせ、 b.cgiの出力内容をhttpレスポンスとしたいのです。 他の言語のライブラリですと、forwardというメソッドが用意されており、 私の望むようなことが出来るのですが、 CGIモジュールのリファレンスを探しても forwardに該当する機能が見つからないようなので、質問させて頂きました。 説明不足で申し訳ありません。

関連するQ&A

  • CGIの処理結果をHTML内に表示したい!

    はじめまして。 CGI初心者です。 現在、とあるフリーのアンケートのCGI(perl)を改良していて、それは、アンケートに答えて、送信ボタンを押すと、CGIファイルの処理結果として、これまでのアンケートの集計結果がグラフで表示されるというものです。 その集計結果のみを、別ページ(左側や上部にメニューがあるもの)のHTML内に収めたいのです。 ※新しいウィンドウが開かなくてもOKです。 ※その別ページというのが私のオリジナルのページになります。 イメージとしては、 1)anket.html(アンケートに答える)  ↓ 2)anket.cgi(返答内容とこれまでの集計を処理)  ↓ 3)anket.html(集計結果が埋め込まれたHTMLファイルが表示される) 初心者なので、用語の使い方等間違っていましたらすいません。。 よろしくお願いします!

  • cgiを実行可能にするには

    webでcgiを実行可能にするには webサーバー(windows NT)側は どのような設定をすればいいでしょうか。 perlで記述したいためActive perlはインストールしました。 その他にcgiの実行を許可する設定が必要ですか? 初心者ですので、見当違いな内容でしたらもうしわけありません。

  • CGI動作後に元のページに戻る方法

    Perl , javascript 初心者です。 あるページの一番下に,チェックボックスを設置して選択してもらうという簡単なアンケートを作っています。 submit ボタンを押した後,CGI(Perl) で処理を行い,その後元のページの元いた場所(アンケートがあるところ)を表示させることはできますか? また,できれば submit ボタンの横に「ご協力ありがとうございました」というコメントを表示したいと思います。 良い方法があれば教えて下さい。

    • ベストアンサー
    • Perl
  • 別サーバーのcgiを実行させる

    あるサーバーで動作しているcgiスクリプトから、別のサーバーに置いてあるcgiスクリプトを実行させる方法はあるでしょうか? require 'http://…/…/test.cgi'; としても実行することは出来ませんでした。 googleで検索したところrequireではURL指定ができないと解説しているサイトがありましたので、requireを使わずに、(CGI.pm等の標準モジュール(?))なども使わないで他のサーバーに設置したcgiを動作させる方法があれば、教えていただきたいです。

    • ベストアンサー
    • CGI
  • 他のサイトの情報の読込み

    よく翻訳サイトとかにあるような、 他のサイトのWebページを読み込んで、それを加工して表示するようなCGIを作りたいと思っています。 Perlで他のサイトのWebページを読み込むことはできるのでしょうか?

    • ベストアンサー
    • Perl
  • 処理終了後、他のページへジャンプする方法

    perl での処理を終了後、他のページ(html)に自動的に飛ばしたいのですが(JavaScriptは使わずに)、どうすればよいでしょう。

    • ベストアンサー
    • Perl
  • こんなCGIまずないと思いますが・・・?探してます。

    以前、ある特定のページをWEB上で誰かが開いたら、 CGIでこちらにメールが自動的に来て知らせてくれるCGIは ありますか?という質問をさせていただきましたところ、 見事にそのようなCGIをお教え頂きまして感謝感動でした。 今回こそは、本当にあり得ない難しいと思われる希望なのですが、 そのページを誰から閉じたら、メールで知らせてくれるCGI ってありますかぁ~???? あるわけ無いですよね・・・<(笑;)>

    • ベストアンサー
    • CGI
  • pcや携帯へ振り分けるcgiのことですが

    現在フリーのcgiをテスト使用していますが、indexページへのアクセスのみを振り分けています。  自HP内へ複数(10個)記載してあるURLへのアクセスに対して、 HTTP://******.jp/かつdocomoなら、このページへ。 auならこのページへ。PCなら・・・ 同様に HTTP://○○○○.jp/かつdocomoなら、このページへ。 auならこのページへ。PCなら・・・ と言う風にアクセスURL,条件が設定できるcgiを見つけられなかった為、困っています。 (perl初心者です) 上記の様な設定ができるcgiやHPをご存知の方、何卒教えてください。 また、自分の勉強の為上記の条件のperlでの記述が わかる方いらっしゃいましたら、是非ともお願いいたします。  

  • CGIの使い方について教えてください

    CGIの使い方について教えてください。 自分が運営しているホームページに掲示板を作成したいので、以下のCGIを使うことにななりました。ですが、初心者のためうまく出来ません。詳しい方、教えてください。 http://www.kent-web.com/bbs/joyful.html? joyful.cgi を エディタ で開いて以下の箇所を修正します。 #!/usr/local/bin/perl  (プロバイダで定められたPerlへのパスを指定します) と説明されていますが、Perlの意味が解りません。これは一体なんでしょう? 設定のやり方等を詳しく教えてください。

  • ひとつのWebページに他のページを表示させたい

    題名じゃわかりにくかったと思いますが ひとつのWebページ(html)の隅っこに他のWebページ(cgi) を表示させるようなページを作りたいのですが、タグの記述はどうすればいいですか?

専門家に質問してみよう