画面表示中での別CGIの呼び出し

このQ&Aのポイント
  • あるCGIから出力した画面が表示されている状態で、定期的に別のCGIを呼び出しDBへの書き込み処理を行いたい。
  • フレームを使用して子画面1と子画面2を表示し、子画面2では定期的なCGIアクセス用として使用する。
  • しかし、子画面2のCGIを呼び出した後に「戻る」ボタンを押下すると、同じ画面に戻ってしまい、子画面2を呼び出した回数分「戻る」ボタンを押す必要が出てきてしまう。
回答を見る
  • ベストアンサー

画面表示中での別CGIの呼び出し

お世話になっております。 あるCGIから出力した画面が表示されている状態で、定期的(例えば5分に1回等)に、別のCGIを呼び出しDBへの書き込み処理を行いたいと考えています。 そこで考えたのがフレームを使用し、子画面1では情報表示用、子画面2では定期的なCGIアクセス用として、子画面2を表示しないようにしました。 ここまでは問題なかったのですが、何回か子画面2のCGIを呼び出した後に、「戻る」ボタンを押下すると、同じ画面に戻ってしまい、子画面2を呼び出した回数分「戻る」ボタンを押す必要が出てきてしまいます。 ・できればフレームを使用せずに実施したい。 ・無理であれば、「戻る」ボタンの対応を行いたい。 何か実例があればご教授願いたいと思っております。 よろしくお願いいたします。

  • ryoy
  • お礼率66% (2/3)
  • CGI
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • shige_70
  • ベストアンサー率17% (168/946)
回答No.2

#1です。 補足に書いていただいた方法はnphスクリプトじゃないとだめだと思います。 Apacheですよね? "Status: 204 No Content\n" にすればできると思います。お試しください。

ryoy
質問者

お礼

実現できました。 迅速なご回答、ありがとうございます。

その他の回答 (1)

  • shige_70
  • ベストアンサー率17% (168/946)
回答No.1

DB更新だけで画面を変えなくて良いのなら、cgiからステータス204 No content を返してやれば出来ると思います。

ryoy
質問者

補足

ご回答ありがとうございます。 現在Perlで開発しているのですが、CGI側から下記の コードを返すということでよろしいでしょうか? print "HTTP/1.0 204 No Content\n"; 試してみたところ、クライアント側では HTTP応答コード500でエラーとなってしまいます。 お手数ですが、何かコメントがありましたら よろしくお願いいたします。

関連するQ&A

  • 表示画面を替えずに、CGIを実行するには

    写真が何枚か表示された画面が有ります。 写真の下に[del] とか [copy]とかのリンクを儲け、これをクリックすると、その写真が削除されたり、ある場所にコピーされたるするページが有ります。 表示画面を替えずに、削除やコピーの作業を実施しし、できれば小さな別ウインドウに、作業の結果(失敗か成功か)を表示したいのですがどのようにしたら良いでしょうか。 削除や、コピーの部分はCGIでできているので、画面を替えずにこのCGI 呼べればいいのですが、この部分も JavaScript でも結構です。 よろしくお願いします。

  • Javascript から CGI の呼び出し

    HTMLから、小窓を開いて画像を表示させるプログラムを書いています。 小窓には、画像保存ボタンとCLOSEボタンがあります。 CLOSEボタンを押すと、画像の情報がディレクトリから消されるような仕組み(CGI)になっています。 ただ、困ったことに、ブラウザの右上のバツ印で小窓を消されるとそのCGIが起動しません。 バツ印をつかえなくするか、何か画面を閉じた瞬間にCGIを動かせるような方法はないでしょうか。 ちなみに,現段階のプログラムはこのようなかんじです。 <script language="JavaScript"> <!-- function exit(){ window.open("http://etwas/cgi/test.cgi"); alert("test"); } <!----> </script> </head> <body onUnload="exit()"> こうすることで,閉じた瞬間に新しい画面が開いてくれるのではないか、と思ったのですが うまく行きませんでした。アラートはでるのですが。 ちなみに遷移先のCGIは開いた瞬間にプログラムを実行して閉じるようにしてあります。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • cgiでフレーム分割した画面を作成したい。

    理解不足で質問の意味が分かりにくいかと思いますが、 どうか宜しくお願い致します。 TEST.html という画面に用意したボタン“A”をクリックした時、 aaa.cc というcgiを実行して画面を作成・表示させています。 やりたいことは、下記の通りです。 このaaa.ccで表示している画面を左右にフレーム分割して、 左側のフレームにaaaで作成した画面を、 右側のフレームにbbb.ccというcgiを実行して作成した画面を表示させる。  bbb.ccは、aaa.ccで作成したhtml内のボタン“B”をクリックし  た時、<form action=“bbb”>を実行し作成します。

    • ベストアンサー
    • CGI
  • 会員サイトで、2枚のCGIを表示させる

    こんにちは、困っておりましてどなたかご教授ください。 login.cgi (ログイン認証CGI ログイン後はHTMLが書き出されます) blog.cgi (会員向けブログCGI) 以上のCGIがありますが、当方の希望としてlogin.cgiで ログインしたあとのページが表示されたら、 blog.cgiも表示させたいのです。 現在の所、フレーム(index.html)にて上にlogin.cgi 下にlogin.cgi宛のログインフォームがかかれたhtml(login.htm) を設置して、ログイン後に画面の上に表示される (login.cgiによって書き出される画面)リンクをクリックして 画面下にblog.cgiを呼びださせておりますが、出来れば ログイン後に自動で切り替えたいのです・・。 フレームで行う場合については、Javascriptで可能でしょうか。 素人なもので、サンプルソースなど含めてご解説頂ければ 大変助かります、、 また他言語でもなにかいい案があれば、ご教授ください。 よろしくお願い他します。

  • cgi内の画像リンクを別ウィンドウにとばしたい

    CGI-designのテンプレートを使用しております。 管理画面の「リンクURL」に「http://www.jp.usedmachinery.bz/」と 打ち込むと、そのフレーム内にリンク先のページが表示されてしまいます。 別ページにジャンプさせるにはどう組めばよいのでしょうか?

    • 締切済み
    • CGI
  • DBでデータ取得後の画面の再表示方法

    こんにちは。 現在PHP+MySQLで検索画面を作成しています。 検索項目にIDを入力し「検索」ボタンを押下すると、該当データがあれば、一覧を検索画面と同画面(検索TextBoxの下)に一覧表示しようと思っています。フレームは使っていません。 検索ボタン押下後、SQL発行しデータ取得までは上手くいっているのですが、画面の再表示が上手くいきません。 調べたところ Header("Location: http://~~~~.php"); や require("http://~~~~.php") で実現出来そうですが駄目でした。 ご存知の方アドバイスお願いします。

    • 締切済み
    • PHP
  • 複数のCGIにデータを渡したい

    現在、2分割のフレームでA.cgi(frame1)とB.cgi(frame2)を表示させています。 <form method=post action="A.cgi" target="frame1"> <input type=submit value="name"> </FORM> でA.cgiにnameが送信された結果がframe1に表示されますが、この1つのボタンクリックで同時にnameをB.cgiにも送信し、結果をframe2に表示させるにはどうしたらいいでしょうか?

    • ベストアンサー
    • CGI
  • 「メールホーム」CGIの送信後に表示するホームページを全画面にするには

    「メールホーム」CGIは各プロバイダ等で用意されており、設定についてはサンプルファイルをカスタマイズすることにより簡単に設定することができます。 問題は、送信後に表示するホームページについてですが、input type=hidden name =&quot;_endpage&quot; value=&quot;http://ここに記入するするのはホームページのURLのため、フレームを使用している場合はフレームの一部に表示されおかしな具合になります。 送信後に表示するホームページを全画面にするにはどうすればよいのでしょうか? よろしくお願いいたします。

  • アプレットからCGI/HTMLを呼び出すには

    Javaアプレットで作成された変数をCGI/HTMLに渡して、それを呼び出すことは可能でしょうか?アプレットで入力されたデータをCGIを使用してDB登録および各種加工し、その結果を画面表示したいのですが、どのようにすればいいかわかりません。 どうぞよろしくお願いいたします。

  • cgiからcgiを呼び出す方法2

    先日「cgiからcgiを呼び出す方法」で質問させていただいたのですが、 その後の状況にて新たな質問をさせていただきます。 【経緯】 もともと単体で動作していたcgi Aに対して新たにcgi Bを作成し、 cgi Bからcgi Aを呼び出したいのですが、うまくいきません。  cgi A:アンケート回答フォームのようなもの  cgi B:認証フォーム(コードを入力してDB内のデータと一致したらcgi Aを呼び出したい) 【その後の状況】 exec("perl A.cgi"); とすることで cgi A の画面を表示することが出来ました。 【新たな質問】 (1) cgi A の画面は表示されましたが title は cgi B のままです。  exec で cgi A が呼び出された時点で title は cgi A にならないのでしょうか? (2)いろいろなサイトに、呼び出し先に  "Content-Type: text/html; charset=Shift_JIS\n\n"  の記述があってはダメとの説明がありましたが、この記述がないと  cgi Aにてデータを入力し、送信ボタンを押すと  500 Internal Server Error(malformed header from script. Bad header~)  が表示されてしまいます。  Content-Type の記述があれば、cgi A の送信ボタンを押すことによって  入力したデータがDBに格納され、また、title も cgi A のタイトルが表示されます。 【cgi A が呼び出された時点の画面イメージ】  cgi B のタイトル  Content-Type: text/html; charset=Shift_JIS  cgi A のタイトル   cgi A の入力項目   cgi A の送信ボタン cgi A の送信ボタン(submit)を押すことによって、完全に cgi Aに制御が渡るということでしょうか? cgi A を呼び出した時点で完全に cgi A に制御を渡したいのですが、 どなたかアドバイスをお願いします。 cgi A の構成を変える必要があるようであれば、その当たりのアドバイスもお願いします。

    • ベストアンサー
    • CGI

専門家に質問してみよう