・背景や文字色のカスタマイズが簡単な変更で可能です。
■作成手順を説明します。
- プログラムをダウンロードします.
- ダウンロードしたプログラムをを解凍し、編集します.
- サーバに転送し、実行権を設定をします.
■xxxx.pl(SSIバージョン)とxxxx.cgi(CGIバージョン)が同梱されてますのであなたのプロバイダーの状況により使い分けてください。
■ プログラムをダウンロードします。
- ファイルのダウンロードの前に、あなたのパソコンにディレクトリを作ります。
- ホームページのある場所(index.htmを置いてある場所)にbirthdayというサブディレクトリを作成します。(ここに解凍した全ファイルを置きます。)
- サーバー側にもbirthdayというディレクトリを作成しておきます。
- プログラムの名前を(左)クリックするとダウンロードを始めます。
- birthdayご利用の方:birthday.lzhをダウンして下さい。
- sayhappy_spご利用の方:birthday.lzh、sayhappy_sp.lzh、whatday.lzhをダウンして下さい。
(birthday、whatdayを設置済みの方はsayhappy_spのみダウンします。)
■CGIを動かすのに必要なファイル達
(1) birthday.cgi-----赤色のファイルが必要です。
(2) sayhappy_sp.pl---赤色+青色のファイルが必要です。
(右クリックでなくて左クリックですのでご注意下さい。)
■downcnt.cgiという名前で保存されますので、birthday.lzhなど名前を変更して保存します。これをLhasaなどの解凍ソフトで解凍します。
■旧版(sayhappy、thismonth)のダウンロードはこちらbirthday_sub.lzh(約6KB)からできます。
■ ダウンロードしたファイルを解凍し、編集します。
以下sayhappy_sp.plで説明しますのでsayhappy_sp.cgiを使う場合は、sayhappy_sp.plをsayhappy_sp.cgiに読み替えて下さい。
- ファイルの構成と内容
birthday.lzhを解凍し以下のファイルを使います。
- birthday.cgi(ハッピーバースデイ本体)
- birthday.pl (誕生花・誕生石表示プログラム、Mamiko.Sさん作)
- birthdaydat.cgi(データファイル)
- birthday.gif (タイトル画像)
- mail.gif (メール用画像)
- home.gif (ホームページ用画像)
- heart.gif (お誕生日マーク画像)
- jcode.pl (日本語コード変換プログラム)
sayhappy_sp.lzhを解凍し以下のファイルを使います。
- sayhappy_sp.pl(今日・今月の誕生日&今日は何の日表示プログラム)
whatday.lzhを解凍し以下のデータファイルを使います。
- birthday.txt(有名人誕生日ファイル)
- monthly.txt (何の日ファイル)
- event.txt (行事ファイル)
- history.txt (歴史・出来事ファイル)
- birthday.cgi
- 1行目: #!/usr/local/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
多くのプロバイダはこの指定で大丈夫と思いますが、うまくいかない場合はプロバイダに問い合わせて下さい。Infowebの場合は #!/usr/bin/perl になります。
- 25行目: $home = '../index.htm';に「ホーム」ボタンで戻したい戻り先URLを指定します。
- 41行目: $midi = $basedir.'/happybirthday.mid'; のhappybirthday.midをあなたの演奏したいMIDIデータの名前にします。演奏しない場合は$midi ='';に変更します。
(注)happybirthday.midは同梱されておりません。MIDIデータをご自身で用意できない方は必ず$midi ='';に変更してください。このままだと「プラグインが要求したデータ-は、正常にダウンロードできませんでした。」とエラーになります。
- 47行目: $delkey = 'abc123'; のabc123をあなた固有のキーに変更します。投稿者に変更・削除させたい時は $delkey = '';に変更します。
- 51行目: $address = 'xxxx@xxx.infoweb.ne.jp'; のxxxx@xxx.infoweb.ne.jpにあなたのメールアドレスを指定します。変更・削除キー問い合わせメールがこのアドレスに届きます。
- sayhappy_sp.pl
- 1行目: #!/usr/local/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
- 19行目: $sel = 0; に表示項目選択番号を指定します。詳細はカスタマイズの項を参照してください。
- 24行目: $basedir = './birthday' を、このCGIを貼りつけたHTML文、から見たbirthdayディレクトリのパスにします。birthdayディレクトリに全てのファイルを置けるプロバイダーの方は変更しません。
- 29行目: cgiと画像データ等を別のディレクトリに置かないといけないプロバイダーの方は$basedir2 = './birthday';に、このCGIを貼りつけたHTML文、から見た画像データ等のパスを指定して下さい。
- 34行目: $basedir3 = './whatday' を、このCGIを貼りつけたHTML文、から見たwhatdayディレクトリのパスにします。
- birthday.pl
- 1行目: #!/usr/local/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
- birthdaydat.cgi、birthday.gif、mail.gif、home.gif、heart.gif、jcode.pl
birthday.txt、monthly.txt、event.txt、history.txt
- birthday.cgiへのリンク
- index.htmの中に以下のリンクを貼ります。
<a href="./birthday/birthday.cgi">ハッピーバースデイ</a>
- sayhappy_sp.plへのリンク
- index.htmの中の表示したい場所に以下のSSI文を記述します。
<!--#exec cmd="./birthday/sayhappy_sp.pl"-->
- index.htmなどのSSI記述するファイルの拡張子について
- プロバイダーによってはSSIを記述するファイルの拡張子はindex.shtmlと、shtmlでないと動作しないところがあります(freewebなど)。あなたのプロバイダーに確認してください。
- jcode.plのディレクトリー指定の方法(手持ちの jcode.pl を使う方)
- いくつかのCGIを設置してて、jcode.plを共通に使ってる方は、jcode.plを違うディレクトリーに置いてあると思いますので、birthday.cgiの require './jcode.pl'; の赤の部分をそのディレクトリー指定に書き換えます。パスの指定のしかたはこちらです。
■ サーバに転送し、実行権を設定をします。
- 画像データbirthday.gif、mail.gif、home.gif、heart.gifをサーバ側にバイナリモードで、それ以外のファイルをアスキーモードで、転送します。
- ファイルの構成と実行権
転送が終わったら、 CGI(拡張子xxxx.pl、xxxx.cgiのファイル)に実行権755を、 birthdaydat.cgi に666を、ディレクトリ birthday、whatday に777を設定します。ディレクトリの実行権の設定を忘れないで下さい。
index.htm
birthday(777)
|--------- birthday.cgi (755)
|--------- birthday.pl (755)
|--------- birthdaydat.cgi (666)
|--------- birthday.gif
|--------- mail.gif
|--------- home.gif
|--------- heart.gif
|--------- jcode.pl (755)
|--------- sayhappy_sp.pl (755)
whatday(777)
|--------- birthday.txt
|--------- monthly.txt
|--------- event.txt
|--------- history.txt
さぁ、これで完成です。index.htmのハッピーバースデイをクリックして見ましょう。ハッピーバースデイが表示されれば完成です。
■ プロバイダ別設置のヒント
新しいプロバイダに設置された方情報提供よろしくお願いいたします。
プロバイダ | HTMLからCGIへのリンク | 画像置場 | birthday.cgiの$basedir指定 |
infoweb | ./birthday/birthday.cgi | birthday.cgiと同じ | $basedir = '.'; |
@nifty | http://hpcgi?.nifty.com/****/ birthday/birthday.cgi | index.htmと同位置の birthdayディレクトリ | $basedir = 'http://homepage?.nifty.com /****/birthday'; |
hi-ho | http://www.hi-ho.ne.jp/cgi-bin/user /****/birthday.cgi(サブディレクトリ不可) | index.htmと同位置の birthdayディレクトリ | $basedir = '/****/birthday'; |
isweb | http://isweb?.infoseek.co.jp/**** /cgi-bin/birthday/birthday.cgi | birthday.cgiと同じ | $basedir = '.'; |
(注)****部分はあなたが取得した名前(ID)です。?部分にはHTML文で記述するURLの場合と同じ数字が入ります。
■ もっとあなた好みにしてみませんか!(カスタマイズ)
正常動作が確認できたら、もっとあなた好みに変更(カスタマイズ)しましょう。
■簡単に変更できる項目
個人設定の部分が変更できます。いろいろトライしてみて下さい。
■birthday.cgi
- トップページの表示形式
- $toppage = 2; #カレンダー表示 0、登録順一覧表示 1、誕生順一覧表示 2
- 1ページに表示する件数
- 登録コメント文の文字数限度...全角文字1文字で「2」100で全角文字50文字...
- bodyタグの設定
- $col_bg = 'white'; #背景色
$col_txt = 'black'; #テキスト色
$bgpic = './gif/haikei.gif'; #背景に画像を使う場合場所を指定
- タイトルに画像&横幅
- $titpic = './birthday.gif'; #タイトルに画像を使う場合場所を指定
- $width = '85%'; #タイトルの横幅(pixel指定or%指定)。あなたのページに合わせて調整します。
- 文字色( カラー名 or カラーコードを変更 )
- $col_name = 'crimson'; #名前
$col_mess = 'blue'; #メッセージ
$col_regi = 'navy'; #登録日
$col_flow = 'brown'; #誕生花メッセージ
$col_srch = 'red'; #検索文字
■sayhappy_sp.pl
- 表示項目選択
- $sel = 0;
0:今日の誕生日+今日は何の日+今月の誕生日
1:今日の誕生日+今日は何の日
2:今日の誕生日 +今月の誕生日
3: 今日は何の日+今月の誕生日
4:今日の誕生日
5: 今月の誕生日
(注)今日は何の日のみ表示はwhatday.plをご利用ください
- 文字色( カラー名 or カラーコードを変更 )
-
$col_name = 'crimson'; #birthday名前の文字色
$col_name2 = 'blue'; #whatday名前文字色
$col_flow = 'brown'; #誕生花メッセージの文字色
$scolor = "lightcyan"; #新着色
- 文字サイズ(スタイルシート)
- 今月の誕生日で1行に表示する人数(2,4と偶数値を指定)。あなたのページに合わせて調整します。
- テーブル幅の指定。(%指定 or ピクセル指定)。あなたのページに合わせて調整します。
- 新着を、過去何日以内にするか日にちを指定
■ SSIコマンド #exec が使えないときの対処法
プロバイダーの中には SSI は使えるが、 #exec コマンドを禁止してるプロバイダー(hi-hoなど)があります。この場合、#include コマンドが使えれば、sayhappy_sp.plを#include用に変更することで同じSSI動作をさせることが出来ます。
- sayhappy_sp.plの変更個所
・7行目:#print "Content-type: text/html\n\n";の # を削除します。
・24行目:$basedir = './birthday'; の/birthdayを削除し $basedir = '.'; にします。
・34行目:$basedir3 = './whatday'; に「 . 」を1つ追加し $basedir3 = '../whatday'; にします。
・112行目:onClick='location=\"$basedir/birthday.cgi?action=reg&vew=$mon&disp=rday\"'およびonClick='location=\"$basedir/birthday.cgi\"'の$basedir/birthday.cgiの部分に$basedir/birthday/birthday.cgi と/birthdayを追加します。
- index.htm中の表示したい場所に以下の記述をします。
( sayhappy_sp.plでうまく行かないときは拡張子をsayhappy_sp.cgiに変更してみてください。プロバイダによっては拡張子がcgiでないと動作しないことがあります)
<!--#include file="./birthday/sayhappy_sp.pl"-->
[注]「file」引数で指定できるパスは、SSI記述したHTMLファイルと同じディレクトリかサブディレクトリにある場合にのみ使えます。絶対パスは使えません。また相対パスでも「..(親ディレクトリ)」は使えません。
それ以外の場合、つまりfileでは指定できない所にファイルがある場合は「virtual」引数でファイルの位置をURLのパスで指定します。
URLのパスとはURLがhttp://kikuchisan.net/の場合以下のようになります。
<!--#include virtual="/birthday/sayhappy_sp.pl"-->
■ 広告バナーの挿入法
ページトップとボトムとにバナーを入れる場合の挿入箇所と挿入文例を以下に示します。広告バナーをCGIに入れる必要のあるプロバイダーの方は参考にしてください。
(注)サンプルはfreewebのものですがfreewebは2000年/7月からバナー自動挿入になりましたのでこの追加は必要ありません。[2000.08.20修正:この情報はh2さんから頂きました]
■ birthday.cgi
- ページヘッダーの追加。(145行目)
sub header{
print "$title$body\n";
print "
$date_now
\n";
○○○○○
if ($midi ne '' && $form{'disp'} eq ''){ #音楽演奏
print "
と○○○○○の場所に以下の部分を追加します。
print "<center><a href='http://www.freeweb.ne.jp/cgi-bin/ad/redirect.cgi' target='_top'><img src='http://www.freeweb.ne.jp/cgi-bin/ad/getimage.cgi?region=freeweb' border=0></a></center>\n";
- ページボトムの追加。(106行目)
# フッタの設定
$footer = <<_END_;
○○○○○