• ベストアンサー

CGIへ飛ばずに処理だけさせたい

kokucho81の回答

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.5

サンプル作ったげるから自分で考えてください。 いろいろなやり方があります(ありすぎてどれでも良いですね) (今回は、A__さんが<img なら~)とあったので、 img書いてみますか。。。。 a.html -------------- <html> <head> <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <style type="text/css"><!-- #layer { position: absolute; top: 0px; left:0px; width: 0px; height: 0px; visibility: visible }--> </style> </head> <script language="javascript"><!-- function CGI() { layer.visible=false; layer.innerHTML="<img src='a.cgi?"+document.myForm.textareaName.value+"' width=0 height=0>"; } //--></script> <body> <form name="myForm"> <textarea name="textareaName"></textarea> <input type="button" name="submitButtonName" value="AB" onclick="return CGI();"> <div id="layer">a</div> </body> </html> a.cgi ----------------- #/usr/bin/perl; $_=$ENV {"QUERY_STRING"}; open FH, ">text.txt"; print FH $_; text.txt ----------------- 空っぽでもなんでもOK あとは、研究してみてください。今回はGETの例ですね。 POSTは。。。まぁ、応用すればわかるでしょう。 頑張ってくださいね。

A__
質問者

お礼

後からimgタグを書いてCGIにアクセスするという ことができてしまうんですねー。 とても勉強になりました。 POSTデータはGETにまわして、教えてくれた ソースを利用して、おとなしく送信させることができました。 ありがとうございます。

関連するQ&A

  • cgiでデータのDL直後にメッセージを出したいのですが

    自宅サーバーを運用していて、つまづいております… 私のサーバーでは、データへはURLでは直接アクセスさせないで、cgiの中で 文字列を置換して、HDDの中のフォルダ名/ファイル名を指定して、DL させるようにしています。 (事情があり、この方法にしております) そこで、DL時のダイアログを表示させる為に、以下のような2つのcgiを 作成して、cgi_aの"DLボタン画像"を左クリックすると、cgi_bへジャンプ して、実データをクライアントのPCに保存出来るようになっております。 ここで、DL後にメッセージを表示させるようにしたいのですが、 cgi_bで『Content-type: application/download』としてしまっている為に メッセージを表示させたくても、html記述が出来ずに困っております。 『Content-type: application/download』の後に、 『Content-type: text/html』に戻せるような方法や、その他html記述が 出来るような解決方法をご存知のかたがいらっしゃいましたら、よろしく お願いします。 <元のcgi(cgi_aと命名)> print "Content-type: text/html\n\n"; print <<"---HTML---"; <html><head><title></title></head> <div align="center"> <form action="ジャンプ先のcgi" method="POST" name="entry"> <tr> <input type="hidden" 渡すパラメータの記述が数個 > <td><input type="image" src="DLボタン画像.gif" value="submit" onclick="this.entry.submit(); return false;" /></td><BR> <BR> <ジャンプ先のcgi(cgi_bと命名)> print "Content-type: application/download\n"; print "Content-Disposition: attachment; filename=$filename\n\n"; binmode(STDOUT); open(DATA,"$value") ; binmode(DATA); print <DATA>; close(DATA);

    • 締切済み
    • CGI
  • CGIファイルの送り方教えて下さい

    はじめまして!超初心者です。 最近CGIを本を見ながら勉強しているんですが ファイルの送信の仕方が分かりません。やはり HTMLファイルとは送信の仕方が違うのでしょ うね?誰か教えて下さい。 (FTPソフトはFetchです。) ちなみに送りたいファイルは --------------------------------- #!/usr/local/bin/perl print "Content-type: text/html\n"; print "\n"; print "<HTML>\n"; print "<H1>Hello!</H1>\n"; print "</HTML>\n"; --------------------------------- です。

    • ベストアンサー
    • CGI
  • HTMLからCGIへデータを引き継ぎ

    HTMLでメールフォームを作りCGI(Perl)で次のプログラムを作りました。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "$mail\n"; print "$namae\n"; print "$naiyou\n"; 動作確認のためプログラムは少しにしました。何も表示されません。

    • ベストアンサー
    • Perl
  • cgiでメタタグを使用するにはどうすればいいですか

    htmlでメタタグ <meta http-equiv="refresh" content="4;URL=#.html"> と、4秒でURLにジャンプしています(URLは略)。 cgiサイトもあり、cgiでも、4秒でURLにジャンプしたいです。 print "Content-type: text/html\n\n"; print "<html>\n"; print "<head>\n"; print "<meta http-equiv="refresh" content="4;URL=#.html">\n"; print "</head>\n"; print "</html>\n"; print "と\n";で単純に挟んでいますが、エラーになってしまいました。 メタタグには、特殊な書き方があるのでしょうか?

    • ベストアンサー
    • CGI
  • 「 <!--#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でフォームからの入力内容を表示されない。

    初歩的な質問ですみません。 自宅サーバを使っています。 ■ActivePerl 5.8.8 Build 822 ■httpd142p ------------------------------ ■httpd142p ┗■cgi-bin  ┣■cgi-lib.pl  ┣■test.cgi  ┗■test.html ------------------------------- CGIは動作します。 一行目のパスもあっています。 --------------------------- 【test.cgi】 #!C:/perl/bin/perl #require './cgi-lib.pl'; #&ReadParse(*MYDATA) print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<TITLE>RESULT</TITLE>\n"; print "<BODY>\n"; print "氏名 = $MYDATA{'simei'}\n\n"; print "住所 = $MYDATA{'jyusyo'}\n"; print "</BODY>\n"; print "</HTML>\n"; exit; -------------------------------- 【test.html】 <HTML> <HEAD> <TITLE>TEST</TITLE> </HEAD> <BODY> <P> <FORM ACTION="test.cgi" METHOD="POST"> 氏名:<INPUT TYPE="text" NAME="simei"> 住所:<INPUT TYPE="text" NAME="jyusyo"> <INPUT TYPE="submit" VALUE="送信"> <INPUT TYPE="reset" VALUE="リセット"> </P> </FORM> </BODY> </HTML> ---------------------------------- ■実行結果 氏名 = 住所 = ---------------------------------- どなたかご教授ください。

    • ベストアンサー
    • CGI
  • CGIのボタンの処理について

    CGIのフォームにチェックボックスがあってボタンを押すとある処理をさせたいのですが、 <form action="○○.cgi" method="post"> を使って新たなCGIを呼び出さずにフォームのCGIで処理をし、結果を反映させたいのです。もし方法をご存知の方がいましたら教えて欲しいのでよろしくお願いします。 <-------cgiソースの一部----------> print "<input type=\"checkbox\" name=\"re_$n\" value=\"$userdata[$i]\">"; print "<input type=\"button\" value=\"処理\">"; ボタンを押した時に処理をしてすぐさまリロードして同じページに結果を反映させたい!

    • ベストアンサー
    • CGI
  • CGIで~秒後にジャンプします。を入れたいのですが・・・・

    CGIで~秒後にジャンプします。を入れたいのですが・・・・ print部分が↓の部分に~秒後に指定のURLにジャンプする部分を入れたいのですが print "Content-type: text/html\n\n"; print "<HTML><HEAD><TITLE>Thank you!</TITLE></HEAD>\n"; print "<BODY bgcolor=\"#9dffff\">\n"; print "<H2 align=\"center\">アンケートにご協力誠にありがとうございました!</H2>\n"; print "<HR>\n"; print "<P>\n"; print " あなたの貴重な意見を今後のお店作りに役立てたいと考えています。\n"; print "</BODY></HTML>\n"; わかる方いましたらお願いします。

    • ベストアンサー
    • CGI
  • CGI初心者です

    sub html でフォームに入力してもらい、 sub kekka で入力情報を確認し、 sub shori でテキストファイルに登録。 というプログラムを考えているのですが、 フォームから入力されたデータが入った変数$in{'name'} が、sub shori に移ると消えてしまいます。 いろいろ試行錯誤したのですが分かりませんでしたので 教えていただけたらと思います。 以下がサンプルのソースです。 #!/perl/bin/perl require './jcode.pl'; require './cgi-lib.pl'; &ReadParse; if($in{'action'} eq "set"){&kekka;} elsif($in{'action'} eq "sss"){&shori;} else{&html;} sub html{ print "Content-Type: text/html\n\n"; print <<EOM <html>\n <body>\n <h1>CGIテスト1</h1>\n <form ACTION="./sample.cgi" METHOD="POST">\n <INPUT type=hidden name=action value="set">\n 名前<br><input type=text name="name" size="30" MAXLENGTH="30"><br>\n <input TYPE="submit" value="確認"><INPUT type="reset" value="リセット">\n </form>\n </body>\n </html>\n EOM } sub kekka{ print "Content-Type: text/html\n\n"; print <<EOM <html>\n <body>\n <h1>CGIテスト2</h1>\n <form ACTION="./sample.cgi" METHOD="POST">\n <INPUT type=hidden name=action value="sss">\n name = $in{'name'} <input TYPE="submit" value="登録">\n </form>\n </body>\n </html>\n EOM } sub shori{ print "Content-Type: text/html\n\n"; print <<EOM <html>\n <body>\n <h1>CGIテスト3</h1>\n <form ACTION="./sample.cgi" METHOD="POST">\n name = $in{'name'} </form>\n </body>\n </html>\n EOM }

    • ベストアンサー
    • Perl
  • PerlでCGIを制作している初学者です。

    PerlでCGIを制作している初学者です。 画像付きのアンケートを作ろうとしているのですが、 その際のページの切り替えがうまくいきません。 普通に1ページに、ボタンやフォームを配置したアンケートは作れるのですが、 自身が作りたいのは、紙芝居のごとく、 1ページ目に画像とアンケートの選択肢であるチェックボックスがあり、 チェックボックス入力後に回答を押すと同時に、配列へチェックボックスの答えを格納し、 2ページ目のアンケートへ移るというものです。 1ページ目や2ページ目のhtmlファイルならびにcgiファイルは用意できているのですが、 1ページ目の返答ボタンをおした際の処理の記述がわかりません。 例えば、 1ページ目 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <CENTER> <img src="sample.jpg" alt="01" width=800px height=600px> <FORM method="POST" action="post.cgi"><BR> <INPUT type="radio" name="answer" value="010" checked>complete mismatch  <INPUT type="radio" name="answer" value="011">mismatch  <INPUT type="radio" name="answer" value="012">neutral  <INPUT type="radio" name="answer" value="013">match  <INPUT type="radio" name="answer" value="014">complete match  <BR> <BR> <INPUT type="submit" name="submit" value=" SEND "> <BR> </FORM> </CENTER> </BODY> </HTML> と記述し、 post.cgi #!/perl/bin/perl print "Content-type: text/html\n"; print "\n"; read(STDIN, $data, $ENV{'CONTENT_LENGTH'}); print "REQUEST_METHOD : $ENV{'REQUEST_METHOD'}<br>\n"; print "CONTENT_LENGTH : $ENV{'CONTENT_LENGTH'}<br>\n"; print "DATA : $data<br>\n"; としたとき、 1ページ目でsample.jpgについての意見をラジオボタンで選択し、それをpost.cgiにて表示させるというサンプル(ここを後で変数の格納に変えます)ですが、この時、1ページに似た構成の2ページ目のアンケートへのリンクの仕方がわかりません。 イメージ的には、 1ページ目表示→回答を配列[0]に格納→2ページ目表示→回答を配列[1]に格納→・・・ 最終的には、各ページの回答を記録した配列を出力します。 以上のようなことを実現したいのです。 WEBなどを探してみたのですが、1ページにボタンやフォームがたくさん埋め込まれたものは発見したのですが、この紙芝居的なアンケートのヒントになりそうなものが見つかりませんでした。 アドバイスや、忠告などで結構ですので、回答を頂けると幸いです。

    • 締切済み
    • CGI