Perlのフォームで表示したテキストを取り込む方法

このQ&Aのポイント
  • Perlのフォームを使用して表示したテキストをそのまま取り込む方法について教えてください。
  • 質問の内容は、Perlのフォームを使用して表示した時刻をそのまま取り込める方法を教えてほしいというものです。
  • 具体的には、テスト問題を表示する際に開始時刻を表示し、回答ボタンが押されて戻ってきたときに終了時刻を求め、その間隔を把握したいという要望です。
回答を見る
  • ベストアンサー

perlのフォームで表示したテキストを取り込む

お世話になります。 フォームに関しての質問です。 <input ,,,,などは使えるようになりましたが、 今回やりたいことは、 表示した時刻をそのまま取り込むにはどうしたらよいか、 と言うことです。 もう少し詳しく説明します。 あるテスト問題をやらせ、 回答内容と、回答するまでの時間の2本立てで評価をしたいために、 cgiで問題を表示したときに開始時刻を表示し、 回答ボタンが押されてcgiに戻ったときに終了時刻を求め、 その間隔を把握したいのです。 しつこいですが、 開始時刻を表示し、その開始時刻をそのまま取り込みたいのです。 構想は、 &timeのように現在時刻を調べ、 取得した時刻を20090817 101225の様に開始時刻として表示し、 この表示した20090817 101225を回答内容と一緒に取り込みたいのです。 (取り込んだ後に同じく&timeで時刻を求め、間隔を割り出します) 以上、宜しくお願いします。

  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.1

作戦は、ふたつあります。 作戦1 <input type="hidden" name="stime" value="1250475796"> この INPUTタグを form 中に含めてください。 表示用の開始時刻とは別にです。 ・stime はパラメーターの名前なので、適当に変更してください。 ・1250475796 は、time() の生の値です。 その方が、入力後の引き算が楽です。 作戦2 表示用の開始時刻をそのまま入力するには、以下の様にします。 <input type="text" name="stime" value="表示時刻" readonly> テキスト入力欄らしくない体裁にするのはちょっと面倒かも知れません。 いずれの場合も method="get" なら、URL書き換えで開始時刻を偽るという不正行為がいとも簡単にできてしまいます。

nagahaha
質問者

お礼

早速有り難うございます。 どちらも言われていることは分かりました。 作戦1は時刻を求め、同じ物を(1)表示と(2)取得用に使う、 と言うことですね。 作戦2は求めた時刻を(変更できないが)インプットボックスのように表示し、 そのまま取り込める、 と言うことですね。 まさに作戦2で書かれているように、 「テキスト入力欄らしくない体裁」がやりたいことです。 単純に表示して、それにnameが付けられれば可能なのですが。 いざとなれば、作戦1が使えますね、考えつきませんでした。 同じ時刻とは言え、表示したものではないことだけが気にすれば気になる、 という感じですが。 出来なければ仕方がないのでこの方法を採ろうかと思います。 申し訳ありません、 もう少し、他に教えていただけるかも知れないので、 開けておこうと思います。 有り難うございました。

nagahaha
質問者

補足

zxcv0000様、 お世話になりました。 作戦1で対応しました。 今後とも宜しくお願いします。

関連するQ&A

  • PerlのCGIでフォームのテキスト配列をPerlで取得するには?

    フォームで通常は同じ名前のデータを取得することは無いのですが 表計算のように同じ名前の場合、データの取り出し方がわかりません。 以下、通常の1件の場合のソースです。 #!/usr/bin/perl $| = 1; use strict; our %in; use CGI::Carp qw(fatalsToBrowser); use CGI qw(:standard); require 'jcode.pl'; require 'cgi-lib.pl'; # #-----分岐----- &ReadParse; # 配列でない場合 my $namae = $in{'namae'} print "$namaeで名前が1件表示される"; # これをフォームで namaeが配列になった場合、 #<input type="text" name ="namae"> #<input type="text" name ="namae"> #<input type="text" name ="namae"> # のような場合、3件取得する場合 exit; __END__

    • ベストアンサー
    • CGI
  • フォームの表示が消えてしまう・・・

    初歩的なことでつまづいております。 フォームを利用して「入力」フォームに文字を入れ、「入力!」ボタンを押すと「結果」フォームにその文字を表示させたいのですがうまくいきません。 やりたいことは、 1.「入力」フォームに文字を入れます(たとえば"123") 2.「入力!」ボタンを押します 3.すると「結果」フォームに"123"と表示させたいです  4.また、「入力」フォームにはそのまま"123"が表示されたままにしたいです なぜか下記の記述だとボタンを押した瞬間にすべてのフォームの文字表示が消えてしまいます。 これはどうしてなのでしょうか?すみませんがよろしくお願いします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE="JavaScript"><!-- function calcButton() { var inputValue = document.calc.input.value; document.calc.result.value = inputValue; } //--></SCRIPT> </HEAD> <BODY> <FORM name="calc" action=""> 入力<INPUT type="text" size="5" name="input"><BR> 結果<INPUT type="text" size="5" name="result"><BR> <INPUT type="submit" value="入力!" onClick="calcButton()"> </FORM> </BODY></HTML>

  • 同じテンプレでフォームを表示

    perl勉強中です HTMLフォーム(cgiのテンプレ)からtest.cgiに送信してmysqlにテキストを登録や取得はできました 1つのtexteraが長いため表示を1ページにtextera一つにしています カラム10まで同じテンプレで登録するのにフォームの切り替えをすることはできますか? test.html(HTMLのフォームのテンプレ)を10個も作るのは効率が悪いきがします 繰り返し処理でやりたいのですが素人なのでピンときません、部分的でもいいのでお願いします mysqlのカラムは作ってあるものとします 例えば、htmlページの<input type=submit value="カラム2">をクリックするとtest.cgiに送信されて、もう一度、同じフォームのページを表示、しかし、カラム2への登録フォームになっているみたいな感じです

    • ベストアンサー
    • Perl
  • メールフォーム

    【満足できる回答に300ポイント】メールフォームをホームページに設置しました。CGIはフューチャースピリッツhttp://www.future-s.com/でお借りしました。送信ボタンを押した後、自分が指定した特定のページを表示させたいのですが、借りているところのホームページに行ってしまいます。自分の指定したページを表示させるにはどんなHTMLにしたらいいのでしょうか? 現在は下記のようなHTMLを使っています。 <form action="http://form3.future-s.com/cgi/form3.cgi" method="post"> <input type="hidden" name="formid" value="IDナンバー"> <input type="hidden" name="formsubject" value="○○"> <input type="hidden" name="formlog" value="1"> 中略 </FONT><P><FONT size="-1"><INPUT TYPE="submit" VALUE="送  信"> <INPUT TYPE="reset" VALUE="リセット"> もしHTMLが問題でないなら、下記の条件を満たすフォームを教えてください。 ・CGIを借りても広告の入らないもの ・フォームは自分で作ったものが使えること ・送信後、自分が特定したページを表示させること ・無料であること どうぞよろしくお願いします。

  • CGI(Perl)でメールフォームを作ったのですが

    CGI(Perl)でメールアドレス、名前、内容のメールフォームを作ったのですがうまくいきません。 http://homepage.biglobe.ne.jp/errorpage/500.html CGIプログラムのエラーが発生しました。 原因 CGIプログラムの実行に問題があります。 まれに、予期しないサーバのエラーが原因でこのメッセージが出る場合があります。 と表示されます。 CGIのプログラムを作る前はHTMLだけで作っていました。 <form action="mailto:メールアドレス"~ メールアドレスを非公開で送信するには。

    • ベストアンサー
    • Perl
  • アンケートフォームなどの送信ボタンを押すとソースコードが表示されてしま

    アンケートフォームなどの送信ボタンを押すとソースコードが表示されてしまいます。 初めまして、CGI初心者です。 色々な場所で調べてみた結果、いまいち明瞭な答えにたどりつかなかったので、 質問いたしました。 現在、WindowsXPにて、Perl(ver5.10.1)を使用したCGIを作ろうと思っています。 その中で、フォーム内容を記述して送信を押した場合に次のページに飛んだときに、 cgiのソースコードが表示される状態になってしまいます。 動作確認には、Apache2.2を使用しております。 例えば、単純にフォームに入力したものを次のCGIで表示するものを作った場合、 (sample_form.html) <form action=print.cgi target=_blank method=get> <input size=70 type=text name="input" value="sample text"> <input type=submit value="送信"> </form> は、正常にフォームが表示されますが、送信を押した場合に (print.cgi) #!/perl/bin/perl print "Content-type: text/html\n"; print "\n"; print "REQUEST_METHOD : $ENV{'REQUEST_METHOD'}<br>\n"; print "QUERY_STRING : $ENV{'QUERY_STRING'}<br>\n"; のようなCGI部分は、 CGIとして動作せずソースコードがそのまま表示されてしまいます。 過去ログにあったように Apathの設定関係 httpd.conf に手を加え、cgiを認識させるというような手順や、CGIを認識するディレクトリの変更はすでにしてあります。 それでも解決しませんでした。 あと、別に作ったCGIは普通に動作するという状況です。 フォームからの送信ボタンを押すとソースコードになってしまうのです。 どこに手をつけたらいいのかわからない状況なので、 よろしくお願いいたします。 また、書き足りない情報がありましたらご享受ください。

    • 締切済み
    • CGI
  • 変数の内容が表示できません。perl初心者です。

    問合せフォームでのことです。 HTML fileからの入力内容をCGI fileで表示させ送信ボタンを押して、 確認のalert.htmlに表示させることにしてます。 CGIfileの変数が一部alert.htmlで表示できません。 スクリプトは以下の通りです。 # imag_o 下の2行はうまくいってます。 $t_imag_o="<input type=\"text\" size=\"10\""; $t_imag_o.= "name=\"imag_o\" value=\"$imag_o\">\n"; #comment 下のスクリプトはうまくいきません。 $commentの内容が渡せなくCGI fileで表示された内容が空白になります。 $t_comment="<textarea cols=\"40\" rows=\"5\""; $t_comment.= "name=\"comment\" value=\"$comment\"></textarea>\n"; このスクリプトでデータを渡しています。 sub replaceTags{ foreach (@html){ s/<CGI:error message>/$errMsg/i; s/<CGI:error num>/$errNum/i;  s/<CGI:imag_o>/$t_imag_o/i; s/<CGI:comment>/$t_comment/i; if ($errNum > 0){ s/<CGI:submit>/<input type="submit" value="送信">/i; }else{ s/<CGI:submit>//i; } } return 1; } 質問内容が不十分の所もあるかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • Perl
  • Perlで書いたページが表示されない

    以下の内容の「index.cgi」「test.cgi」という名前は異なるが 内容は同じファイルをIISを用いて表示させようとしています。 -------------------------------------------------------------- #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print <<"htmss"; <HTML> <HEAD> <TITLE>CGI</TITLE> </HEAD> <BODY>今日からCGIを頑張って習得してきましょう。</BODY> </HTML> htmss -------------------------------------------------------------- この場合に、index.cgiは表示されるのですが、 test.cgiは表示されません。(サーバーが見つかりません、の表示) また、他の内容のcgiファイルも表示することができません。  ※最初は表示されていたが急に表示されなくなったり表示されたりを繰り返した結果、   見えない状態が続いています index.cgiもたまに表示することができない場合もあります。 これはIISのせいなのか、環境が不安定なせいなのか、困っています。 どなたか回答していただけると幸いです。

  • テキストフォームのチェックについて

    テキストファームの内容チェックについて教えてください。 下記コードで取得したURLをテキストフォームに表示させ「onclick」でiframeに画面を表示させています。 これを、テキストファームが書き換わった段階で、実行することは できないでしょうか? (テキストフォーム内のURLが書き換わったら、その内容をチェック して、iframeにそのURLの画面を表示する) <html> <form name="f1"> URL:<input type="text" name="url" size="60" value="" /> <input type="button" value="このURLへ移動" onclick="target_name=***.location.href=this.form.url.value"> </form> <script type="text/javascript"> function set_latlng() { document.f1.url.value="http://***.***.****" /script> 以上、宜しくお願い致します。

  • html →perlへフォームを渡そうとしてますが

    独学でmacでパールを勉強しています。 始めてからまだ1週間すこしくらい。 教科書読みながら、 CGIへフォームを渡す所の段階まで進んできました。 現段階で、htmlからperlへフォームを渡そうとしているのですが、 上手く行きません。 状況としては、htmlのフォームを入力して、登録を押す。 成功であれば→実行結果が表示されるはずなのですが、 現段階ではFinderがその実行htmlの場所を開くだけという形になっています。 下記は実験用に使っているソースです。 ーーーーーーーーーーー htmlは <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>test</title> <style type="text/css"> </style> </head> <body> <h1>メンバーズリスト</h1> <form method="post" action="form.cgi"> <p> 名前:<br/> <input type="text" name="name"/> </p> <p> 性別: <input type="radio" name="sex" value="male" checked>男 <input type="radio" name="sex" value="female">女 </p> <input type="checkbox" name="megane">メガネを付けてる </p> <p> <select name="kankei"> <option value="yuujin">友人 <option value="kaisya">会社関係 <option value="sonota">その他 </select> </p> <p> 住所: <textarea name="jyusyo" rows="5" cols="40" ></textarea> </p> <p> <input type="submit" value="登録"/><input type="reset" value="クリア"/> </p> </form> </body> </html> ーーーーーーーーーーーーーーーーー perlは #!/usr/bin/perl require 'cgi-lib.pl'; &ReadParse(*form); $name = $form{'name'}; $sex = $form{'sex'}; $megane = $form{'megane'}; $kankei= $form{'kankei'}; $jyusyo = $form{'jyusyo'}; print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD><TITLE>情報受け取り</TITLE></HEAD>\n"; print " <BODY>\n"; print "<H1>情報受け取り</H1><HR>\n"; print "名前:${name}<BR>\n"; print "性別:${sex}<BR>\n"; print "めがね:${megane}<BR>\n"; print "関係:${kankei}<BR>\n"; print "住所${jyusyo}<BR>\n"; print "</BODY>\n"; print "</HTML>\n"; __END__ です。 ちなみに localhost上で同一ファイルに入れて、 動かしてます。 ご確認の上、ご助言ください、 perlの教科書に書いてあった構文は、 htmlの学習をするために使ってきたものと全く違ったため、 要点だけ残す形で、再度書いたものです。 htmlの文章がおかしいのか、perlがおかしいのか、 頭が変になりそうです。お助けください。

    • ベストアンサー
    • Perl