・背景や文字色のカスタマイズが簡単な変更で可能です。
このCGI は、Mamiko.Sさん作「誕生花&誕生石プログラム」( birthday.pl )を利用させて頂いてます。また作者のご好意により再配布も許可していただきました。詳細をご覧になりたい方は作者のページMamiko's Pageをご覧ください。( birthday.plの著作権はMamiko.Sさんにあります )
■作成手順を説明します。
- プログラムをダウンロードします.
- ダウンロードしたプログラムをを解凍し、編集します.
- perlのパスの確認(全CGI)
- jcode.plのパスの確認(birthday.cgi、dataconv.cgi)
- ホームページ名の変更(birthday.cgi)
- 管理者のメールアドレスの変更(birthday.cgi)
- 管理者キーの変更(birthday.cgi)
- sendmailの選択とパス指定(birthday.cgi)
- whatday既設置の場合はwhatdayディレクトリのパス変更(sayhappy_sp.pl or sayhappy_sp.cgi)
- サーバに転送し、実行権を設定をします.
- データ変換を実行します.(同梱マニュアル参照)
- 動作OKなら細かい個人設定をお好みに合わせて変更します.
■ プログラムをダウンロードします。
- ファイルのダウンロードの前に、あなたのパソコンにディレクトリを作ります。
- ホームページのある場所(index.htmを置いてある場所)にbirthdayというサブディレクトリを作成します。(ここに解凍した、CGIを動かすのに必要なファイル達+dataconv.cgiを置きます。)
- サーバー側にもbirthdayというディレクトリを作成しておきます。
- プログラムの名前を(左)クリックするとダウンロードを始めます。
- バースディカレンダーご利用の方:birthday3.lzhをダウンして下さい。
- セイハッピーご利用の方:birthday3.lzh、sayhappy3.lzhをダウンして下さい。
(whatdayを設置済みの方はそのデータファイルの利用が可能です。)
■CGIを動かすのに必要なファイル達
(1) birthday.cgi-----赤色のファイルが必要です。
(2) sayhappy_sp.pl---赤色+青色のファイルが必要です。
(右クリックでなくて左クリックですのでご注意下さい。)
ファイル名 | このファイルに同梱されてるファイル内容 | 最新版 | サンプル |
birthday3.lzh (約41KB) |
スクリプト:birthday.cgi、birthday.pl、common.cgi、jcode.pl、dataconv.cgi データ:birthdaydat.cgi 画像:birthday.gif、home.gif、mail.gif、heart.gif、blank.gif マニュアル:データ変換マニュアル.html |
v3.5 | birthday.cgi |
sayhappy3.lzh (約103KB) |
スクリプト:sayhappy_sp.pl(or sayhappy_sp.cgi) データ:birthday.txt、monthly.txt、event.txt、history.txt |
v3.1 | sayhappy_sp.cgi |
■downcnt.cgiという名前で保存されますので、birthday3.lzhなど名前を変更して保存します。これをLhasaなどの解凍ソフトで解凍します。
■ ダウンロードしたファイルを解凍し、編集します。
- ファイルの構成と内容
birthday.lzhを解凍し以下のファイルを使います。
- birthday.cgi(ハッピーバースデイ本体)
- birthday.pl (誕生花・誕生石表示プログラム、Mamiko.Sさん作)
- common.cgi (birthday.cgi、sayhappy_sp.pl(cgi)共用プログラム)
- birthdaydat.cgi(データファイル)
- birthday.gif (タイトル画像)
- mail.gif (メール用画像)
- home.gif (ホームページ用画像)
- heart.gif (お誕生日マーク画像)
- blank.gif (空白画像)
- jcode.pl (日本語コード変換プログラム)
- dataconv.cgi(V2.x→V3.xデータ変換プログラム)
- データ変換マニュアル.html(dataconv.cgiマニュアル、サーバには転送しません。オフラインで閲覧してください)
sayhappy_sp.lzhを解凍し以下のファイルを使います。
- sayhappy_sp.pl(cgi)(今日・今月の誕生日&今日は何の日表示プログラム)
- birthday.txt(有名人誕生日ファイル)
- monthly.txt (何の日ファイル)
- event.txt (行事ファイル)
- history.txt (歴史・出来事ファイル)
- birthday.cgi
- 1行目: #!/usr/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
多くのプロバイダは #!/usr/local/bin/perl になると思いますが、うまくいかない場合はプロバイダに問い合わせて下さい。
- 28行目: $hpname = "ホームページ名";をあなたのホームページ名に変更します。
- 32行目: $mailto = 'xxxx@xxxxxx.com';をあなたのメールアドレスに変更します。
- 36行目: $admin = 'xxxxx123';をあなたの管理者キーの設定に変更します。管理者キーは「変更・削除キー」が判らなくても、確認したい登録者の「名前」「誕生日」を入力後、このキーを「変更・削除画面」「変更・削除キー」に入力すると管理者による登録情報の確認(変更・削除キーなど、管理者ログインの場合は投稿排除設定に必要なIPアドレスも表示)や登録情報の変更・削除ができるように設けたものです。
- 45行目: CGIと画像データの置き場所が異なるときは $basedir = '.';に、このCGIから見た画像データディレクトリの相対パス or 絶対パス、またはURLを指定します。CGIと画像データの置き場所が同じ場合はこのままにします。
- 138行目: $sendmail = '/usr/lib/sendmail'; の/usr/lib/sendmailにsendmail送信プログラムのパスをプロバイダに確認し設定します。
- sayhappy_sp.pl(sayhappy_sp.cgiの場合はCGI中の説明をご覧ください)
- 1行目: #!/usr/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
- 19行目: $sel = 0; に表示項目選択番号を指定します。詳細はカスタマイズの項を参照してください。
- 26行目: $basedir = './birthday' を、このCGIを貼りつけたHTML文、から見たbirthdayディレクトリのパスにします。cgi-binなどCGIの置き場所が指定されてるプロバイダーの方はここを変更します。birthdayディレクトリに全てのファイルを置けるプロバイダーの方は変更しません。
- 31行目: 画像データを別のディレクトリに置かないといけないプロバイダーの方は$basedir2 = './birthday';に、このCGIを貼りつけたHTML文、から見た画像データのあるディレクトリパスを指定して下さい。
- 36行目: 今日は何の日をwhatdayディレクトリに設置済みの方は $basedir3 = './birthday' を、このCGIを貼りつけたHTML文、から見たwhatdayディレクトリのパスに変更します。設置されてない方はこのままにします。
- birthday.pl、common.cgi、dataconv.cgi
- 1行目: #!/usr/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
- birthdaydat.cgi、birthday.gif、mail.gif、home.gif、heart.gif、blank.gif、jcode.pl
birthday.txt、monthly.txt、event.txt、history.txt
■ リンク方法
- birthday.cgiへのリンク
- index.htmの中に以下のリンクを貼ります。
<a href="./birthday/birthday.cgi">ハッピーバースデイ</a>
- sayhappy_sp.plへのリンク
SSIが使える場合は、sayhappy_sp.plを、使えない場合は、sayhappy_sp.cgiを使ってiframeで表示します。(iframeをサポートしてないブラウザNN4.xxでは表示されません)
- index.htmの中の表示したい場所に以下のSSI文を記述します。
<!--#exec cmd="./birthday/sayhappy_sp.pl"-->
- index.htmの中の表示したい場所に以下のIFRAME文を記述します。
<iframe src="./birthday/sayhappy_sp.cgi" name="inline" frameborder="0" width="680" height="400" scrolling="auto" marginheight="0" marginwidth="0"></iframe>
■ その他
- index.htmなどのSSI記述するファイルの拡張子について
- プロバイダーによってはSSIを記述するファイルの拡張子はindex.shtmlと、shtmlでないと動作しないところがあります(freewebなど)。あなたのプロバイダーに確認してください。
- jcode.plのディレクトリー指定の方法(手持ちの jcode.pl を使う方)
- いくつかのCGIを設置してて、jcode.plを共通に使ってる方は、jcode.plを違うディレクトリーに置いてあると思いますので、birthday.cgi、dataconv.cgiの require './jcode.pl'; の赤の部分をそのディレクトリー指定に書き換えます。パスの指定のしかたはこちらです。
■ サーバに転送し、実行権を設定をします。
- 画像データをサーバ側にバイナリモードで、それ以外のファイルをアスキーモードで、転送します。
- データ変換が完了したらいたずら防止のためdataconv.cgiをサーバから削除します。
- ファイルの構成と実行権
転送が終わったら、 CGI(拡張子xxxx.pl、xxxx.cgiのファイル)に実行権755を、 birthdaydat.cgi に666を、ディレクトリ birthday に777を設定します。ディレクトリの実行権の設定を忘れないで下さい。
index.htm
birthday(777)
|--------- birthday.cgi (755)
|--------- birthday.pl (755)
|--------- common.cgi (755)
|--------- birthdaydat.cgi (666)
|--------- birthday.gif
|--------- mail.gif
|--------- home.gif
|--------- heart.gif
|--------- blank.gif
|--------- jcode.pl (755)
|--------- sayhappy_sp.pl (755)
|--------- birthday.txt
|--------- monthly.txt
|--------- event.txt
|--------- history.txt
|--------- dataconv.cgi (755) [データ変換後サーバから削除]
■ データ変換の実行(新規に設置される方はデータ変換は必要ありません)
旧バージョン(V2.9x以前)から新バージョンへ移行される方は、データに互換がありませんので、同梱のデータ変換マニュアル.htmlをご覧の上、データ変換CGI dataconv.cgi を利用してデータ変換を実行してください。dataconv.cgiはブラウザ上から簡単に実行でき、CGIに自信がない方にも確実かつ安全にV2.9x以前の旧データからV3.xデータへの移行ができます。
さぁ、これで完成です。index.htmのハッピーバースデイをクリックして見ましょう。ハッピーバースデイが表示されれば完成です。
■ SSIコマンド #exec が使えないときの対処法
プロバイダーの中には SSI は使えるが、 #exec コマンドを禁止してるプロバイダー(hi-hoなど)があります。この場合、#include コマンドが使えれば、sayhappy_sp.plを#include用に変更することで同じSSI動作をさせることが出来ます。
- sayhappy_sp.plの変更個所
・7行目:#print "Content-type: text/html\n\n";の # を削除します。
・26行目:$basedir = './birthday'; の/birthdayを削除し $basedir = '.'; にします。
・36行目:$basedir3 = './birthday'; の/birthdayを削除し $basedir = '.'; にします。今日は何の日をwhatdayディレクトリに設置済みの方はこのCGIを貼りつけたHTML文、から見たwhatdayディレクトリのパスに変更します。
・141行目: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 virtual="./birthday/sayhappy_sp.pl"-->
■ もっとあなた好みにしてみませんか!(カスタマイズ)
正常動作が確認できたら、もっとあなた好みに変更(カスタマイズ)しましょう。
■簡単に変更できる項目
個人設定の部分が変更できます。いろいろトライしてみて下さい。
■birthday.cgi
- トップページの表示形式
- $toppage = 2; #カレンダー表示 0、登録順一覧表示 1、誕生順一覧表示 2
- 1ページに表示する件数
- 登録コメント文の文字数限度...全角文字1文字で「2」100で全角文字50文字...
- bodyタグの設定
- $col_bg = 'white'; #背景色
$col_txt = 'black'; #テキスト色
$bgpic = $basedir.'/haikei.gif'; #背景に画像を使う場合場所を指定
- 文字サイズ(スタイルシート)
-
$size1 = "12pt"; #名前の文字サイズ
$size2 = "10pt"; #名前以外の文字サイズ
- レイアウト(テーブルの横幅の表示サイズ)
- $titwidth = '550'; #タイトル部の横幅(pixel指定or%指定)
$tblwidth = '95%'; #誕生日表示部の横幅(pixel指定or%指定)
- 文字色( カラー名 or カラーコードを変更 )
- $col_name = 'crimson'; #名前
$col_mess = 'blue'; #メッセージ
$col_regi = 'navy'; #登録日
$col_flow = 'brown'; #誕生花メッセージ
$col_srch = 'red'; #検索文字
- MIDIデータを使う
- $midi = $basedir.'/happybirthday.mid';
- タイトル用メッセージ文
- $topmsg = 'みんなで作るバースディカレンダーです。あなたの誕生日やご家族の誕生日をご登録下さい。';
- お誕生日お祝いメッセージ(送信フォームに自動設定されます)
- $mess = 'お誕生日おめでとうございます。今日一日が楽しい日でありますように!';
■sayhappy_sp.pl(cgi)
- 表示項目選択
- $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 ピクセル指定)。あなたのページに合わせて調整します。
- 新着を、過去何日以内にするか日にちを指定
■ 更新履歴
■ birtday
- 2004/02/21 v3.5 「敬老の日」が2003(平成15)年から9月第3月曜日になる「祝日法」の改正に未対応だったのを対応するように修正。
- 2003/12/21 v3.4 スタイルシート適用と海外サーバ対応をlocaltimeからgmtimeに変更。
- 2003/08/28 v3.3 削除通知メールが削除者に通知されないバグを修正。併せて管理者発信メールのコピーをCcからBccに変更。
- 2003/08/23 v3.2 管理者による登録情報の確認(変更・削除キーや投稿者IPアドレスなど)および登録情報の変更・削除機能を追加。
- 2003/08/10 v3.1 v3.1スクリプト公開。
■ sayhappy_sp
- 2003/12/21 v3.1 スタイルシート適用と海外サーバ対応をlocaltimeからgmtimeに変更および有名人誕生日データ等の更新。
- 2003/08/10 v3.0 v3.0スクリプト公開。