CGIでのデータの出力について

このQ&Aのポイント
  • CGIを使用して、URLにデータを送信し、テキストエリアに文章を記入したい場合の方法について教えてください。
  • input.cgiでパスワードまたは名前を入力し、ボタンを押すと、location.cgiに接続されます。この際、input.cgiのパスワードから生成されたURLに接続され、同時に接続ページの<textarea>に個別のメッセージが入れられます。
  • しかし、「同時に接続ページの<textarea>に個別のメッセージを入れる」という処理ができません。別の方法があれば教えてください。
回答を見る
  • ベストアンサー

cgiでのデータの出力についてです。

したいことは、cgiでULRに飛ばしさらに、テキストエリアにそれぞれの文章を記入したいと言う物です。 説明しにくいので箇条書きで書きます。 input.cgiでパスワード、もしくは名前(英数) ↓ ボタンを押す。action="location.cgi" ↓ location.cgi内でttp://******.jp/sendList.asp?とinput.cgiのパスワードから代入されたURLに接続、同時に接続ページの<textarea>に一人々へメッセージを入れる。 (例)Aさんが来客:こんにちは。 bさんが来客:おひさしびりですね。 >同時に接続ページの<textarea>に一人々へメッセージを入れる。 というのが出来ません。よろしくお願いします。 他にCGIを作れば可能とかでしたらそちらの方も教えていただきたいです。

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

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

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

ごめん CGIでHTMLを生成してると思ってた CGIは飛ばしてるだけなのね それなら飛ばす前にクッキーを吐き出してjavascript側でそれを拾ってNo1の補足のような方法で突っ込んだら良いと思うよ クッキーがうまく行かないなら ちょっと乱暴だけどjsファイル(という名のテキスト)を吐き出してそれをHTML側で取り込むとかかな。(飛ばす前に生成しないと読めないと思う) (掲示板のキャッシュでHTMLを吐き出すというのは見かけると思う。それの応用)

tyotyokobo
質問者

お礼

なるほど、ほとんどサンプルとかで作っていたので、詳しい事はよくわからないんですがww 掲示板のcgiを応用すれば良いってことですよね? ちがいますかね?ww ありがとうございます♪

tyotyokobo
質問者

補足

クッキーの保存方法はわかりました。 しかし、出力方法が良くわかりません… --------location.cgi---------- %formdata = plab::getformdata(); print "Location: http://*****.jp/Mail/sendList.asp?プラスinput.cgi入力データ print "\n"; print "?????: Window.parent.??????.document.all.item('*****',1).value=' こんにちは' print "\n"; exit; こんな感じになるのでしょうか? ハテナで書かれてる部分が全くわかりません。 そのまえにすべて間違えているかも知れません。 サンプルをちょっと加工してたりするだけなのでよくわかりません。 http://www.perl-labo.org/formdata/postmethod/ このサイトに載っているpost.cgiってのがいいかな?と思っているのですが、出力先を指定させるには、どうやらばいいのでしょうか? よろしくお願いします★

その他の回答 (1)

noname#39970
noname#39970
回答No.1

普通にHTMLの表記のみで <textarea> に文字を入れる方法を確認する 確認したらその書式を用いてCGIで出力する際のタグを整形しておけば良いのでは? http://www.tohoho-web.com/html/textarea.htm

tyotyokobo
質問者

補足

Window.parent.document.all.item('****',1).value='こんにちは' とかってことですか?

関連するQ&A

  • 1つのボタンで2つのCGIを起動する

    1つのボタンで2つのCGIを起動する htmlのページでjavascriptを用いて1つのボタンで2つのCGIを同時に起動できないか試行錯誤していたのですが、なかなかうまくいきません。 具体的にCGIの1つは、textareaの内容をフォームで送るもので、もう1つは、ボタンが押される度にカウントアップしていき、10回毎にメールが届くというものです。 ですので、実際画面として表示されるのはtextareaの送信結果のみで十分です。 どなたか2つのCGIを同時に起動する方法をご存じの方は御教授願います。

  • cgi.pm を使用してファイルUP時にtextエリア等の情報もcgiに引き渡す

    何度もPerlのところで質問していますが・・・今回は ファイルのアップロードをするときに少々もんだいが出てきてしまうことについてです。<input type="file"... を使います 以下の二つのファイルで構成しています(一部分だけ) ---form.html--- <form action="upload.cgi" method="POST" ENCTYPE="multipart/form-data"> <textarea name="input_textarea" rows="20" cols="70"></textarea> <input type="file" name="File" size=32> <input type-"submit" value="ok"> ---upload.cgi--- [formからの情報を配列変数に代入するスクリプト・・・] use CGI; $query = new CGI; $filename = $query->param('File'); # ファイル名の取得 $type = $query->uploadInfo($filename)->{'Content-Type'}; 同じファイル名が無いことを確認して、保存 という処理を行っています。upload.cgiの中身がとぼしくて申し訳ありません。 かなり省略してます。 さて、、問題となるのは ENCTYPE="multipart/form-data" とすると 配列変数にFORMからの情報がうまく入ってくれないということです、 かといってENCTYPE="multipart/form-data"を外すと CGI.pm を使った ファイルのアップロードができなくなってしまいます。 ENCTYPE="multipart/form-data" のオプションをつけて 配列変数にテキストエリアの内容を入れるにはどうすればいいのでしょうか。 テキストエリアを取り除くとファイルのアップロードはできます。 ただ、ファイルと入力したテキストを同時に処理することができないんです。

  • 配布されてるCGIをダウンロードしたのですが

    CGIは超がつくほどの初心者ですがサーバーへは無事に接続できたみたいです。 でも、接続時にCGIプログラム?から指定のIDが見当たりません。 このように表示されます。 それで質問させていただきたいのです。 IDとパスワードを入力する必要があるとCGIの説明にも載ってたので、 任意のIDとパスワードを入力する。と でもどこに入力すればいいのか? 詳しい方か分かる方が入たら教えてください。 print "<tr><td align=\"right\">User ID</td><td><input type=\"text\" name=\"usr\" value=\"\"></td></tr>\n"; print "<tr><td align=\"right\">Password</td><td><input type=\"password\" name=\"pass\" value=\"\"></td></tr>\n" 超初心者ですいません。

    • 締切済み
    • CGI
  • ひとつのCGIファイルに複数のページの動作を管理

    CGI超初心者です。 HTMLファイルにいくつかラジオボタンを設置し、 これとこれを選んだらこのページを開く、 次のページで、 これとこれを選んだらこのページを開く・・・ というような構成でサイトを作っています。 CGIで条件分岐させていますが 書き方が良く分からないので教えてください。 第一ページ用の条件分岐CGIの下に、第二ページ用の条件分岐CGIを書きましたが うまく動いてくれません。 どちらかを削除するとうまく動きます。 ひとつのCGIファイルに、 複数のページの条件分岐をまとめて書くことは出来ないのでしょうか? ページごとに別々のCGIファイルを作成しなければならないですか? 以下具体例です。 ---第一ページ.html--- <form name="q1" action="test.cgi" method="POST" > ・・・ <input type="submit" value="送信する" /> </form> ---第二ページ.html--- <form name="q2" action="test.cgi" method="POST" > ・・・ <input type="submit" value="送信する" /> </form> ---CGI--- #====================下準備====================== if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $str, $ENV{'CONTENT_LENGTH'}); } else { $str = $ENV{'QUERY_STRING'}; } foreach $i (split('&', $str)) { $i =~ tr/+/ /; $i =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; ($t1, $t2) = split('=', $i); $FORM{"$t1"} = $t2; } #===================変数の設定=================== $q11 = $FORM{'q11'}; $q12 = $FORM{'q12'}; #=================条件分岐_質問1================= if ($q11 eq "q11_a") { print "Location: ./ba1.html\n\n"; } elsif ($q11 eq "q11_c") { print "Location: ./ba2.html\n\n"; } ・ ・ ・ else { print "Location: ./go2.html\n\n"; } #===================変数の設定=================== $q21 = $FORM{'q21'}; $q22 = $FORM{'q22'}; #=================条件分岐_質問2================== if ($q21 eq "q21_a") { print "Location: ./co3.html\n\n"; } elsif ($q22 eq "q22_a") { print "Location: ./ba4.html\n\n"; } ・ ・ ・ else { print "Location: ./go3.html\n\n"; }

    • ベストアンサー
    • CGI
  • CGI Error が、まれに起こる

    早速質問させてください。 現在、ログインページを作成し、ログインが成功したら次のページへ header("Location:main.php"); へジャンプするものを作成しています。 その際、正しい URL を指定しているにも関わらず、まれに CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: が発生してします。 どのような時にこの現象が起こるのかどうしても分かりません。 もし、お分かりになる方がいましたらご教授ください。 環境 OS:Win2000 IIS5.0 + PHP 4.1.2 ------------------------- <?php session_start(); session_destroy(); if($loginFlag==1){  $ret = loginCk($username,$password); // ログインのチェック  if($ret==false){   echo "ログインに失敗しました。";  }else{   session_register("g_username");   $g_username = $username;   header("Location:main.php"); // main.php へジャンプ  } } ?> <html> <body>  <form method="post" action="login.php">   <input type="text" name="username" size="30">   <input type="password" name="password" size="30">   <input type="hidden" name="loginFlag" value=1>   <input type="submit" value=" ログイン ">  </form> </body> </html> -------------------------- 以上です。

    • 締切済み
    • PHP
  • 変数の受け渡し

    アップローダのスクリプトにダウンロードパスをつけようと日々頑張っているのですが、なかなかうまく出来ません。 例.No1をダウンロードしたい場合 一覧ページからNo.1の記事を選択       ↓ No.1をダウンロードするためのパス入力画面       ↓ No.1ダウンロードページ 上記のようにしたいのですが、 記事表示CGIからパスワードCGIへ変数を渡そうとしていますがなかなかうまくいきません。 ***記事表示CGIのパスワード入力画面*** <form action="パスワードCGIのパス" method="POST"> <input type=hidden name=No value="$no"> <input type=password name=pass size=10> <input type=submit value="認証"> ***パスワードCGIでの条件分岐*** if ($in{'pass'} ne $loginpass) { print "認証画面に戻って再度パスワードを入力して下さい\n"; } print "Location: 記事表示CGIのダウンロードページ&kno=$no\n\n"; exit; としているのですが、変数$noをパスワードCGIの方で取得できません。 CGIは最近弄り始めたばかりなのでぜんぜん分からなくて…。 そもそも <input type=hidden name=No value="$no"> でパスワードCGIの方に$noが送られているのでしょうか? 送られているのでしたら$noの取得方法を教えていただけないでしょうか。 よろしくお願いします。 P.S.拙い文章の為、分かりにくいところなどがありましたら質問してください。 分かる限りはお答えしたいと思います。

    • ベストアンサー
    • CGI
  • cgiのプログラム

    前自分が質問したアカウントの管理についてなんですが、今度はそれをcgiプログラムに書き換えたいと思っています。そこで、ログインのページはできたのですが、認証できたかどうかのページがうまくいきませんでした。そこでなんですが、どう書き換えたらよいのでしょうか?? お願いします! ログインのページと認証のページのプログラムを両方書いておきます。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>ログインページ</title> </head> <body> ログインしてください。<br> 自分のアカウント名とパスワードを入力してください。<br> <form method="GET" action="http://verify.cgi"> アカウント名: <input type="text" name="an"> <br> パスワード:<input type="password" name="pw" size="15"> <input type="submit" value="ログイン"> </form> </body> </html> #!/usr/local/bin/ruby print "Content-type: text/html; charset=euc-jp\n\n" $KCODE = "e" require "CGI" cgi = CGI.new account = cgi["an"] password = cgi["pw"] hash_account = {} fo = open("accountData.txt", "r") i = 0 while(line = fo.gets) ary = line.split hash_account[ary[0]] = ary[1] i = i + 1 end fo.close account = gets.chop password = gets.chop print <<EOS <HTML> <head> <meta http-equiv="content-type" content="text/html; charset=EUC-JP"> <title>アカウント認証</title> </head> <body bgcolor="skyblue"> EOS if (hash_account[account] == password) print "ようこそ、" #{account}"さん。それではゲームを始めましょう。" elsif hash_account.has_key? account print "パスワードが間違っているようです。" else print #{account}"というアカウントはありません。" end print <<EOS </body> </html> EOS 動作環境はruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]になります。 よろしく、お願いします。

    • ベストアンサー
    • CGI
  • CGIからSSHを使いたい

    こんにちは。 CGIから他のマシン上にシンボリックリンクを作る方法で困っています。 現在開発中のシステムは、フロントエンド用のマシンが複数(2台)あり、ロードバランサーにより、接続が切り替えられるようになっています。 つまり、同じURLアドレスにアクセスしても、どのマシンにつながるかはそのとき次第です。 このシステム上で、管理者メニューとして、Web上の項目を増やしたり減らしたりしたいのですが、その際に単なるファイルコピーやディレクトリの作成だけではなく、シンボリックリンクを作成したいのです。 同じマシン上であれば、パーミッションをそれなりに設定することで、CGIからでも、上記の操作が可能ですが、他のマシン(この場合、現在つながっていのいほうのもう1台のマシン)に対してはどのようにすればよいのでしょうか? 使えるプロトコルはsshとftpがあります。rcpやrloginは使えません。 sshを使えは、リモートマシンにシンボリックリンクを作成できるのですが、CGIから使用する方法がわかりません。シェルからであれば、暗号鍵を作ることにより、パスワードなしでのログインにも成功したのですが、CGIからだとユーザーが特殊なためにうまくいきません。 いっそ、CGIのLocationヘッダで飛ばすことも考えましたが、Basic認証を使っているために、パスワードを聞かれてしまい、その際にエスケープしてしまうと、処理が不完全になってしまいます。 なんとかsshでできないものかと調べてはいるのですが、いい情報がみつかりません。どなたか方法をご存知ないでしょうか。よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIの自動呼出し

    直接CGIにアクセスせずに、HOME頁からクリック無しでCGIを呼び出したいのですが、うまく実行されません。ソース(タグ)は次の通りです。 <html> <head> <title>yobidasi</title> </head> <body> <p>呼び出し前メッセージ</p> <form method="POST" action="uketori.cgi"> <input type="hidden" name="fileid" fileid="data_2002112511001.txt"> </form> <p>呼び出し後</p> </html> おそらく「呼出し後」は表示されないと思いますが、 「uketori.cgi」の画面も表示されないままです。 解決方法を教えてください。

    • ベストアンサー
    • HTML
  • 複数のフォームを一括で送信することは可能ですか?

    CGIの勉強を始めたばかりの初心者です。 本に簡単なフォームメールがあったのですが、複数のフォームを一括でデータ送信する方法はあるのでしょうか? http://oshiete1.goo.ne.jp/qa3395953.htmlで教えて頂いた方法を真似て、以下のようにしてみたのですが、これだと1つのフォームしかデータ送信できないです。 CGIの方もいじらないと複数のフォームを一括送信はできないのでしょうか? <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); } //--></script> <form name="nform" method="POST" action="./5-2.cgi"> <p>お名前 :<input type="text" name="name" size="40"></p> <p> メッセージ: <br> <textarea cols="50" rows="5" name="message"></textarea> </p> </form> <form name="nform2" method="POST" action="./5-2.cgi"> <p>お名前 :<input type="text" name="name" size="40"></p> <p> メッセージ: <br> <textarea cols="50" rows="5" name="message"></textarea> </p> </form> <input type="button" value="送信" onClick="send()">

    • ベストアンサー
    • CGI