• ベストアンサー

表示を伴わないcgiは不可?

お世話になります。 早速ですが、 コレまでcgiを使い、業務を作ってきました。 コレまで作ったcgiは、 全てが、作業結果として何らかの表示をするものでした。 (結果の件数とか、状況とか) 今回単純に、データを削除するだけのcgiを作ったところ、 エラーとなります。 (呼び出し側に戻れていない感じです。) そもそもcgi側で何も表示しないというのは駄目なのでしょうか。 それとも単純にエラーがあるのでしょうか。 一応トレースとして、 全く他に手を付けず、最後に「終了」の文字を表示したところ、 ノーマルエンドしました。 cgiの最後は「exit;」です。 どう考えれば宜しいのでしょうか。 宜しくお願いします。

  • CGI
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
回答No.2

よくカウンターなどに使われているCGIのように、imgタグで呼び出せばいいと思います。そのCGIの出力を空の1px×1pxの画像にしておけば、問題ないでしょう。

nagahaha
質問者

お礼

早速有り難うございます。 imgタグが分かりませんが何となく理解できそうです。 見えないダミーの画像を使う、 という感じでしょうか。 オーソドックスに何か表示するよう努力してみます。 お世話になりました。

その他の回答 (1)

回答No.1

ApacheのCGIだと500 内部サーバエラーになって処理だけ実行されると思いますが・・。 というよりも何か返しとけばいいじゃんと思いますけど・・

nagahaha
質問者

お礼

早速有り難うございます。 まさにそのエラーです。 了解です。 何らかの表示を考えてみます。 お世話になりました。

関連するQ&A

  • CGIが動かない

    /var/www/html/hoge.cgiを作りました。 ----- #!/usr/bin/perl print <<'END'; Content-type: text/html; charset=utf-8 <html> <body> <p>hoge</p> </body> </html> END ----- ターミナル上でperl hoge.cgiとやった場合も、実行権を与えて./hoge.cgiとやった場合も、出力はちゃんとなされました。 httpd.confにはExecCGIとAddTypeにより、ソーステキストがそのまま表示されていたのを、Internal Server Errorまでこぎつけたのですが、なんでエラーなのかわかりません。 CGIってもしかしたら所有者がrootだと動きませんか? あとはぜんぜん思い当たることがなくて・・・。 Redhat7.3 Apache1.3.23

  • JavaScriptでcgiの戻り値を受け取るには?

    JavaScriptの関数内でcgiを実行(submit)しています。 そのcgiの実行結果(cgiで記述しているexit 0などの0)を受け取る方法を教えてください。 受け取った値によって、alertでメッセージを表示させたいです。 cgiの実行からalertでメッセージを表示させるまでの処理を JavaScriptの1つの関数内で行いたいです。 よろしくお願いいたします。

  • 「 <!--#exec cgi="***.cgi" --> 」が表示されません

    「main.cgi」というファイルを作り、単純にHTMLを表示するだけのCGIファイルを作成しました。 こんな感じ ------------main.cgi------------ #!/usr/local/bin/perl print "Content-type:text/html\n\n"; print <<EOM; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title></title> </head> <body> <略> </body> </html> EOM __END__ -------------------------------- それで、ほかのHTMLファイルに <!--#exec cgi="main.cgi" --> と入力してそのページを見てみると、 [an error occurred while processing this directive] 上の文章が表示されていました。 どうすれば「main.cgi」の内容を表示することができるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • 表示画面を替えずに、CGIを実行するには

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

  • CGIのPerlの命令の終わりと、本について

    CGIをPerlで始めたばかりで、初心者向けの書籍を買いました。秀和システムの入門です。それには__END__で終了と書いていました。翔泳社の辞典を次に買うと、exitと書かれており、__END__は索引にすら載っていませんでした。この2冊しか店には置いていなかったのですが、秀和システムさんの本をやったあと、翔泳社の辞典はギャップがありすぎます。別のを探した方がよいでしょうか?お願いします。

    • ベストアンサー
    • Perl
  • cgiが動きません。。。

    つい最近、perlを勉強し始めた超初心者です。 ローカル(?)でcgiを作成したり、動かしたりしていたのですが、ホームページを開設してみようと思い立ちました。 早速、開設はしたものの、問題のcgiがまったく動いてくれません・・・ プロバイダはbiglobeです。まず、テスト用として「kantan.cgi」を用意しました。中身は #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "Hello world\n"; exit; です。ローカルではきちんと表示されます。 biglobeのwebFTPで「/public_html」に転送後、パーミッションを755に変更しました。 「http://www7a.biglobe.ne.jp/~*****/kantan.cgi」を開くと、「ページを表示できません」と表示されてしまいます。 「HTTP 500 - 内部サーバー エラー 」と書いてありますが、私には何のことだかサッパリわかりません。 アドバイスをいただけると助かります。よろしくお願いします。

    • ベストアンサー
    • CGI
  • RedHatLinux9でCGIがうまく動きません。

    RedHatLinux9でApache2x系なのですが、CGIがうまく動きません。 Server error! The server encountered an internal error and was unable to complete your request. Error message: Premature end of script headers: test.cgi error 500 が出てしまいます。 行った作業としては、 # UserDir public_html の#をはずす #AddHandler cgi-script .cgi の # を外す. # <Directory /home/*/public_html> <略> # Options MultiViews .... <略> # </Directory> の3カ所の # を外し,Options に ExecCGI を追加. /usr/sbin/suexec を削除 という、こちらの掲示板に書いてあった作業を行いました。cgiがまず動くのかどうか確かめるために /var/www/cgi-bin/ にtest.cgi(ほかのサーバで検証したcgiです)を送りましたが見れなかったです。 http://サーバのIP/cgi-bin/test.cgi でよいんですよね、上のcgiを確かめるパス。 これが間違ってたら。。。動かしたいのは一般ユーザの中でcgiが動くようにしたいのです。 パーミッションも問題なかったです。お願いいたします。

  • apacheでcgi

    AddHandler cgi-script .cgiを有効にして.htaccess の中にOptions +ExecCGIAllを記述してhttpd.confのowOverride Options としてcgiを実行しようとしたら下記エラーになりました。 [Thu Nov 15 11:16:54 2001] [error] (13)許可がありません: exec of /home/jin/WWW/cgi-bin/tslbbs.cgi failed [Thu Nov 15 11:16:54 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/tslbbs.cgi それで、 #AddHandler cgi-script .cgi として、 <Directory /home/*/WWW> Options ExecCGI </Directory> にしたら cgiのソースが見えてしまいます。 cgiのPermissionsは755になっております。 ScriptAliasで/cgi-bin/ /home/*/WWW/cgi-bin/を記述してOptions ExecCGIにしてもソースが見えてしまいます。 cgiを実行させるのにはどうすればいいのでしょうか?? (以前Linuxを良くわからないときに(今でも解っていませんが・・)同じような質問をここに挙げてその時は単純な自分の間違いで動かなかったのですが単純なソースのミスでした。それで今度はLinuxをインストールをしなおしたら動かなくなったのです。 http://apachetoday.com/news_story.php3?ltsn=2000-06-05-001-10-NW-LF-SW 等覗いてそれをやっても動かないのです。 多分単純なことなのかもしれませんが行き詰まって困っております。 昨日の質問でユーザーのHTMLが見れないのはURLの指定で最後に'/'をつければ問題なく見れました。今はイントラネットでLinuxを動かしているのですが、実際のインターネットでは最後の/は入れたり入れなかったりでも問題なく見れるのですが、正しくは最後に/を入れるみたいですね。)

  • Illustratorが勝手に終了します。

    いつもお世話になっております。 前にもあったのですが、あるファイルを修正している最中に勝手にエラー表示もなく、Illustratorが終了してしまいます。ペンツールでハンドルを動かしている時に起こります。 何をしているかと申しますと、下絵(BMPファイル)をただトレースしているだけなのです。 それでファイルを新規作成し、そこに下絵をリンクで配置し、そのファイルでトレース作業をすることにしました。結果は、全く同じ場所で終了しました。(-_-;) Photoshopで下絵のファイルを読み込んでPSD形式で保存し、それを新規作成したファイルにリンクで配置してトレースしてみました。結果は全く同じ場所で終了しました。(-_-;) どうしたら、先へ進めるのでしょうか? 何が原因なのでしょうか? ■WinXP Pro SP2, Illustrator10.0.3, Photoshop7.0

  • 検索結果数の表示(○件ヒット)by CGI rescue

    CGI rescueさんの簡易データベース v2.1を利用しています。 物はこちらです。 http://www.rescue.ne.jp/cgi/database2/ (バージョンが3になっていますが、検索部分は同じのようです。) これで、検索結果が何件ヒットしたのかを表示させたいです。 スクリプト内に「$hit」があったので、そのまま利用しようとすると、"1ページの表示数(またはそれ以下)"を表示してしまいます。 30件ヒットして1ページに20件表示の場合、1ページ目は「20件ヒット」、次ページは「15件ヒット」と表示されてしまいます。 どうにかして全部の検索件数を表示させることは出来ないでしょうか?

    • ベストアンサー
    • Perl

専門家に質問してみよう