ホームページ作成

ガイド:西村 文宏

ホームページ作成の基本や便利なサービスなど、様々なお役立ち情報をお伝えします。

取材依頼 問合せ

掲載日: 2006年 11月 01日

著作権表記の「年」表示を自動更新する!

2. CGI+SSIで日付(年)を自動更新する方法

まず、次のCGIを用意します。

#! /usr/bin/perl
my $year = (localtime(time))[5] + 1900;
print "Content-type: text/html\n\n";
print $year;

たった4行のCGIです。このCGIは、実行すると「現在の年」を表示します。
ファイル名は何でも構いませんが、ここでは「 getyear.cgi 」としておきましょう。

※このCGIをダウンロードしたい場合はここから→ getyear.cgi
右クリックして「対象をファイルに保存」などのメニューから保存して下さい。 拡張子が「.txt」になっていますので、ダウンロード後「.cgi」に変更して下さい。

CGIソースの説明:
1行目: Perlの位置を示しています。お使いのサーバによっては /usr/local/bin/perl などに修正しないと動かない場合があります。
2行目: 現在の年を取得しています。
3行目: CGIで文字を表示させたい場合に必須の記述です。
4行目: 得た年を表示させる記述です。

次に、HTMLファイル中(年を表示させたい場所)に、以下のようなSSIの記述を加えます。

<!--#exec cgi="getyear.cgi"-->

このように記述することで、この位置に「getyear.cgi」を実行した結果が挿入されます。 つまり、年が表示されることになります。

もし、HTMLファイルとは異なるディレクトリ(フォルダ)にCGIを配置したのなら、以下のようにディレクトリ名を含めて記述します。 (※1つ上の階層にあるcgi-binディレクトリに置いた場合の例)

<!--#exec cgi="../cgi-bin/getyear.cgi"-->

以下のようにHTMLを記述しておけば、年が自動更新されるCopyright表記になります。

Copyright &copy; <!--#exec cgi="getyear.cgi"--> MyName. All Rights Reserved.

これを表示すると、次のように表示されます。
※以下は、表示例です。実際にこの記事中でCGIやSSIを動かしているわけではないので、下記では常に「2006」が表示されます。

Copyright © 2006 MyName. All Rights Reserved.

年表記は、閲覧者がアクセスした日付の年が自動的に使われます。
サーバの日付が使われるため、閲覧者の環境には一切依存しません。

<注意>
※何も表示されない場合:
CGIが正しく動作していないか、SSIが有効になっていません。 getyear.cgiを直接ブラウザで表示させてみて下さい。エラーになるならCGIに問題があります。 年が正しく表示されていれば、SSIが有効になっていません。 SSIは、(たいていの場合は)HTMLの拡張子を「.shtml」にしないと動作しないので注意して下さい。 CGIがエラーになる場合は、CGIに実行権が付加されているかどうか、FTPソフトなどで確認してみて下さい。
※「an error occurred while processing this directive」と表示される場合:
SSIに問題があります。 CGIの位置やファイル名を誤って記述していないか確認して下さい。 また、サーバによっては、SSIからCGIを呼び出すことを禁じている場合があります。 その場合、この方法は使えません。

うまくいかない場合は、JavaScriptを使う方法で

どうしてもうまくいかない場合は、JavaScriptで済ませてしまう手もあります。
JavaScriptを使った方法は、前のページを参照して下さい。

おわりに

今回は、Copyright表記中の「年」部分を自動的に更新させる方法をご紹介致しました。
Copyright以外でも、とにかく「現在の年を表示したい」という箇所にならどこでも使えます。 ぜひ試してみて下さい。

関連記事

ガイドメールマガジン
携帯電話のメールアドレスでは登録できません

掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます。