• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGIの結果をHTMLの一部に貼り付けたい)

CGIの結果をHTMLに埋め込む方法

a-kumaの回答

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

使っているサーバで SSI が許可されていればこんな書き方で埋め込むことができます。 <!--#exec cmd="nokori_day.pl" --> 質問で提示されたスクリプトが nokori_day.pl という名前で動くことを想定してます。 出力がそのまま埋め込まれるので、スクリプト中の Content-type の出力は不要です。 # でも、意外と禁止されているんですよね、SSI って。

holiday669
質問者

補足

さっそくのお返事、本当にうれしいです!ありがとうございます♪  なるほど…その<!--#exec cmd="nokori_day.pl" --> というのは SSIの表記方法だったのですね。  いろいろなサイトで探してみたのですが、そのタグを何度か 見ていました。  しかし、今回はJAVAでもなく、SSIも使わずに埋め込む方法がしりたいのです。そのことを書くのを忘れてしまっていました。すいません。  SSIを使わずに埋め込む方法はやっぱりないのでしょうか…(^^;;;

関連するQ&A

  • Perlでの Timeの足し算

    時間の足し算をやりたい。訳あってライブラリが使えません。 方法は無いでしょうか? 仮にライブラリが使えるなら、下記のようでうまく行っています。 --------------------------------------------------- use Time::Local; $year=2008; $mon =10; $mday=24; $hours = 23; $min = 0; $sec = 0; $time = timelocal($sec, $min, $hours, $mday, $mon - 1, $year); $a1=($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time ); $mytimeORG= sprintf("%04d/%02d/%02d %2d:%2d", $year + 1900, $mon +1, $mday,$hour,$min); print "$mytimeORG\n"; ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time + 32400); #9H加算 $mytime9H= sprintf("%04d/%02d/%02d %02d:%02d", $year + 1900, $mon +1, $mday,$hour,$min); print "$mytime9H\n"; ---------------------------------------------

    • ベストアンサー
    • Perl
  • 掲示板への書き込み時間

    掲示板CGIについて質問です。 使おうとしているスクリプトはそのままアップロードすると書き込みした時間の表示が 「4/14 (Sun) 17:10」 のようになります。 これを 「2003 4/14 (日) 17:10:50」 のように年と秒まで加えたいのです。 それで後者のように表示される掲示板CGIを参考にしてみましたが、目立った違いはないように思え、どこをどう変更すれば年や秒まで表示されるようになるかわかりません。 思い当たる部分はこのあたりなのですが…。 ↓このように記述されています ************ $ENV{'TZ'} = "JST-9"; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year = sprintf("%02d",$year + 1900); $month = sprintf("%02d",$mon + 1); $mday = sprintf("%02d",$mday); if ( substr($month,0,1) == 0 ) { $month =~ s/0/ /; } if ( substr($mday,0,1) == 0 ) { $mday =~ s/0/ /; } $hour = sprintf("%02d",$hour); $min = sprintf("%02d",$min); $sec = sprintf("%02d",$sec); $youbi = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday]; $date_now = "$month/$mday ($youbi) $hour:$min"; ************ CGIに手を加えてレイアウトの変更くらいはいつもやっています。 もし書き換える方法がありましたら教えていただければと思います。 どうぞよろしくお願い致します。

    • ベストアンサー
    • CGI
  • cgiのログの書き方

    ここで教えてもらってログファイルの書き方(挿入のようなカンジで)をやってみたんですが、どうしても思い通りの動きをしません。 希望としては、IDが一緒なら、その同じIDの下に書き込みを行う。同じIDが見つからなければ、一番上に書き込みを行う。 というようにしたいのです。 上記のことを行うために以下のコードを書きました。 --------------- for ($w=0;$w<$gyou+1;$w++){ @log3 = split(/&/,$log2[$w]); foreach(@log3){ ($keyw,$valuew) = split(/=/,$_); $FORMw{$keyw} = $valuew; }#foreach open(FH3,">>log.log"); if ($ID == $FORMw{'ID'}){ print FH3"ID=$ID&COUNT=$COUNT&TITLE=$TITLE&NAME=$NAME&PASSWORD=$PASSWORD&NAKAMI=$NAKAMI&COLOR=$COLOR&TIME=$year/$m on/$day $hour:$min:$sec&SEARCHKEY=$year$mon$day$hour$min$sec\n"; last; } else { if($w+1 == $gyou){ print FH3"ID=$ID&COUNT=$COUNT&TITLE=$TITLE&NAME=$NAME&PASSWORD=$PASSWORD&NAKAMI=$NAKAMI&COLOR=$COLOR&TIME=$year/$m on/$day $hour:$min:$sec&SEARCHKEY=$year$mon$day$hour$min$sec\n"; close(FH3); } } }#for --------------- どうしてもログファイルの最新情報としてしか書き込みがされません。 また、最新ログを1番上に書き込む、ということをしたいのですができますか? 日付順などで並べ替えをしてしまうと、ぐちゃぐちゃになってしまうので、並べ替えを行わずに、です。 またこのような書き込みの仕方をしなくても、 例えば並べ替えで、Excelみたいに、1番目と3番目を基準に並べ替え、とかでできますか? (私は1つの方法でしか知らないので、どうしても意図する順番になりません。)

  • CGIについて(時間表示)

    CGI初心者ですが、掲示板を作成中です。投稿するたびにメッセージの投稿時間がすべて現在時刻に書き換わります。 メッセージ毎に時間表示させたいのですが、いかのプログラムのどこを変更すればよいのでしょうか?宜しくお願いいたします。 # 時間処理 sub totime { ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime(time); $year +=1900; $month++; $year = sprintf("%04d", $year); $month = sprintf("%02d", $month); $mday = sprintf("%02d", $mday); $hour = sprintf("%02d", $hour); $min = sprintf("%02d", $min); $sec = sprintf("%02d", $sec); $date = "$month/$mday $hour:$sec"; }

    • ベストアンサー
    • CGI
  • localtimeについて

    まだCGIを勉強はじめのなのですが、localtimeについて質問させてください。 書籍で時間取得には ($sec,$min,$hour,$mday,$mon,$year,$wno) = localtime(time); とし、time関数で得たものをlocaltime関数で整形 といった事が書かれています。 まずわからないのが最初の ($sec,$min,$hour,$mday,$mon,$year,$wno) = の部分なのですが、カッコ内に変数を並べるというのはどういった命令なのでしょうか?書籍ではここまででこのような使い方や記述は出てきていないので、それ自体がよく理解できずにいます。それとも($sec,$min,$hour,$mday,$mon,$year,$wno) = localtime(time);をおきまりパターンとしてワンセットで覚えるべき事なのでしょうか。 続いてlocaltime(time)ですが、これは()内のtime関数によって取得された1970年基準からの秒数を、localtimeによって英語圏での標準的な日付時間表記に直して表示するという事で良いのですよね? これが、なぜ ($sec,$min,$hour,$mday,$mon,$year,$wno) とすることで各変数に割り振ることができるのかがよく分かりません。 これらはおきまりパターンとして覚えるべき事なのでしょうか?それとも配列のようにあるパターンに乗っ取って書かれ得いる事で他に応用がきくような意味合いのものなのでしょうか? ご教授いただきたく思います。 よろしくお願いします。

    • 締切済み
    • CGI
  • このスクリプトの間違いを指摘してください。

    このスクリプトの間違いを指摘してください。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>test</title> <script type="text/javascript"> <!-- function doCountDown() { setInterval('countDown()', 500); } function countDown() { var now = new Date(); var tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1); var diff = Math.floor((tomorrow.getTime() - now.getTime()) / 1000) + 1; var hour = Math.floor(diff / 3600); diff %= 3600; var min = Math.floor(diff / 60); var sec = diff % 60; document.getElementById('cd').innerHTML= "明日まで、あと" + hour + "時間" + min + "分" + sec + "秒"; } //--> </script> </head> <body onload="javacript:doCountDown();"> <div id='cd'></div> </body> </html> 自動更新のカウントダウンタイマーを作ろうと思ってるのですが....

  • CGIのライブラリ表示について。

    初心者で申し訳ございません。 今現在、参考書を読みながら時間を表示するCGIを作っています。 フォルダ"time1"に二つのファイル"time1.html"と"time1.pl"があります。 それぞれのファイルは、本を参考に次のように記述しています。 ===time1.html=== <html> <title>time1</title> <body> <h1>時間を表示する</h1> <hr /> <!--#exec cmd="./time1.pl"--> </body> </html> ====== ===time1.pl=== #!/usr/local/bin/perl ($sec, $min, $hour, $day, $mon, $year, $wdy, $yday, $isdst) = localtime(time); @youbi = ("日", "月", "火", "水", "木", "金", "土"); $year += 1900; $mon++; print "$year-$mon-$day, @youbi[$wdy], $hour:$min:$sec\n"; exit; ====== 以上をIE7で表示しますと、 「時間を表示する」は表示されるものの、.plファイル内の時間が表示されません。 何かやり残していることがありますでしょうか。 申し訳ございませんが、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • パッケージを利用した際の値に謎が!!

    Perlのパッケージについて質問させてもらいます。 Time::Localを利用して1970年1月1日からの経過秒数を取得しようと考えています。 次の様な記述をして実験したのですが、私が想定している通りの動作になりません。 記述(テスト1) (以下からスクリプト開始) use Time::Local; $year=1970; $mon =1; $mday=1; $hours = 10; $min = 0; $sec = 0; $time = timelocal($sec, $min, $hours, $mday, $mon - 1, $year); print $time; (この1行上の行でスクリプト終了) この場合の$timeは、"3600"という答えを得ました。よって、"0"にするために次の様に スクリプトを書き変えて実験しました。 記述(テスト2) (以下からスクリプト開始) use Time::Local; $year=1970; $mon =1; $mday=1; $hours = 9; $min = 0; $sec = 0; $time = timelocal($sec, $min, $hours, $mday, $mon - 1, $year); print $time; (この1行上の行でスクリプト終了) この場合の$timeは、"-3600"という答えを得ました。 なんか変ですね。"0"の答えを得るためにはどうすればよいのでしょうか? よろしくお願いします。

  • 2つの日付・時間の差分を求めるには

    2つの日付、時間の差分を求めるには、 timelocal を使うのかと思うのですが、 $time1 = timelocal($sec1,$min1,$hours1,$day1,$month1,$year1); $time2 = timelocal($sec2,$min2,$hours2,$day2,$month2,$year2); $result = int(($time2 - $time1)/(60*60*24)); return $result; ではいけないのでしょうか?

    • ベストアンサー
    • Perl
  • 日付求め

    お世話になります。 早速ですが、perlで以下のように 現在時刻を求め表示するロジックがあります。 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time); $year=$year + 1900; $mon =$mon + 1; $date81 = "$year年$mon月$mday日($days[$wday])"; $date82 = "$hour時$min分$sec秒"; この時、 例えば今年末であれば、 2009年1月1日0時と表示されると思います。 これを2008年12月31日24時と表示したいのですが、 何か妙案はあるでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Perl