本日  昨日
 
03/16(Sun) 02:48

最後の訪問者からの経過時間の表示の仕方(Web裏技さん応用技)

Web裏技さんの「更新経過表示」プログラム lastmod.pl を応用して、最後の訪問者からの経過時間を表示する方法を説明します。lastmod.pl は、指定したファイルが最終更新されてからの時間をSSI表示します。
例として、このページが最終更新されてからの時間を表示させてみます。

このページが最終更新されてから 3968日4時間13分29秒 経過しました。

[応用の重要なポイントです!]
この応用技は、ホームページの表示開始から表示終了までにタイムラグがあることを利用しています。そのため、「lastmod.pl」が実行されるタイミングと「更新経過表示するファイル」が更新されるタイミングがポイントになります。

つまり、「lastmod.plを実行するSSIの記述場所」は「"更新経過表示するファイル"を更新するプログラムの実行場所」より前にある必要があります。具体的には次のようにします。

  1. lastmod.plを実行するSSIの記述場所
    • できるだけホームページの文頭に記述します。

  2. "更新経過表示するファイル"を更新するプログラムの実行場所
    • 更新経過表示するファイルの選択で注意する点は、ホームページがアクセスされた時必ず更新されるファイルであることです。

      (参考)私のホームページでは、ソフト工作室No.7「アクセスするたびに画像を変える方法」で設置したデータファイル「change」を指定しています。

    • このファイルを更新するプログラムの実行場所は、できるだけホームページの文末に記述します。

作成手順を説明します。
  1. HTMLソースを自分のパソコンにコピーし、プログラム部分を「切り抜き」ます.
  2. プログラムを編集します.
  3. プログラムを呼び出すHTMLファイルを編集します.
  4. プログラムとHTMファイルをサーバに転送し、実行権を設定をします.

HTMLソースを自分のパソコンにコピーし、プログラム部分を「切り抜き」ます。

Web裏技さんのチャレンジCGIのコーナ「最終更新経過を時間で」のページを開き、HTMLソースを自分のパソコンにセーブします。セーブのしかたはこちらです。セーブしたHTMLソースをエディタで開き、下記の部分を「切り抜き」、lastmod.plと名前をつけたテキスト文書に「貼り付け」ます。
--------------次の行から「切り抜き」-------------------------------------
  #!/usr/local/bin/perl
  # このファイル名:lastmod.pl (パーミッションは755)

  #対象とするファイル
  $file = "/home/user/public_html/..../***.xxx";

  $day    = -M $file;
  $hi     = int($day);
  $hour   = ($day - $hi)*24;
  $ji     = int($hour);
  $minute = ($hour - $ji)*60;
  $hun    = int($minute);
  $second = ($minute - $hun)*60;
  $byou   = int($second + 0.5);

  print $hi.'日'.$ji.'時間'.$hun.'分'.$byou.'秒';
--------------この行の前まで「切り抜き」---------------------------------


プログラム(lastmod.pl)を編集します。

  • 1行目 #!/usr/local/bin/perl を #!/usr/bin/perl に変更します。(infowebでは、CGIやPLファイルのパス指定はすべてこのパスになります。他のプロバイダを利用の方はそのプロバイダのパス指定に変更します。)

  • 5行目(空白行も数えて) 更新経過表示するファイルを指定します。

    ルートディレクトリ(index.htmを置いてあるディレクトリのことです)にあるchangeファイルを指定するときは、$file = "change";になります。

  • 16行目(空白行も数えて) 経過時間の表示形式を変更したい場合ここを変更します。デフォルトの表示形式は 0日0時間0分0秒です。

プログラムを呼び出すHTMLファイルを編集します。

  • index.htm ファイルの中で、経過時間を表示したいところに SSI記述で<!--#exec cmd="./lastmod.pl"--> と記述します。

プログラムとHTMファイルをサーバに転送し、実行権を設定をします。

  1. lastmod.pl、index.htmの2つのファイルをルートディレクトリにアスキーモードで転送(put)します。

  2. ファイルの構成と実行権

    転送が終わったら、lastmod.plに実行権 755 を設定します。

    index.htm
    lastmod.pl(755)
    

さぁ,これで完成です。index.htmを再読み込みし、SSIで記述した場所に最後の訪問者からの経過時間が表示されれば完成です。
 
 
©1997- Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ