Schedule Board 設置方法

最新バージョン:1.6.7

注意:このプログラムは重要な情報を扱うことを想定していませんので、個人情報など重要な情報の入力には使用しないで下さい。

目次

がv1.6.7用に更新した分

  1. 機能概要
  2. 設置例
  3. その他
  4. 使用マニュアル
  5. 更新内容

Schedule Board機能概要

本CGIはイベントでの日程調整用に作成しました。

「飲み会やツーリングを開催し、できるだけ多くの人に参加してもらいたいので日程の調整をしたい。」
「誰が参加できそうなのか、他の参加予定者からも見えるようにしたい」を基本として制作。

設置例

本スクリプトは複数の人が同時にファイルに書き込まないようにする制御にflock関数を使用しています。
まず本スクリプトを利用する前に、使用しているプロバイダ(サーバ)がflock関数に対応しているかどうかの確認をしてから利用して下さい。

flock関数の対応チェック方法

サーバの管理者に問い合わせていただくか、KENT WEBにて配付されているSymlink Checkerなどのツールを設置したいサーバに設置し、実行させると対応状況が表示されます。

私が使用しているXREA、ロリポップ、インフォシークiswebライト、Hi-Ho(接続会員用webスペース)をSymlink Checkerでチェックしたところ、flock関数に対応しており、実際、設置してみましたが特に問題は見られませんでした。

ファイルの構成

zipファイルを解凍すると以下のファイルが展開されます。
その中に「.」で始まる名前のファイルがありましたら不要ですので削除しても構いません。

  1. schedule.cgi
  2. jcode.pl ...歌代和正氏のライブラリを再配布するものです
  3. style.css
  4. title.gif
  5. sample-key.gif (v1.6.0以降のみ。サンプル用の投稿キーですので、本CGIを利用する場合は各自用意してください)
  6. data/evtdata.txt
  7. data/schdata.txt
  8. data/bbsdata.txt (v1.6.0以降のみ)

ファイルの構成例

  public_html (ホームディレクトリ)
      |
      +-- schedule /   schedule.cgi    [705]
            |          jcode.pl        [604] 
            |          style.css
            |          title.gif
            |          sample-key.gif(v1.6.0以降のみ)
            +-- data / evtdata.txt   [606]
                       schdata.txt   [606]
                       bbsdata.txt   [606](v1.6.0以降のみ)
※Hi-Hoや@niftyの@homepageではサーバーの制限上、上記ファイル構成のままサーバーにアップロードしても、style.cssやtitle.gifを読込みません。
style.cssやtitle.gifを読込ませるためには、これらのファイルをhomepageフォルダ内に設置し、schedule.cgiの設定でstyle.cssやtitle.gifの設置場所を「http://」から始まるURLにて指定して下さい。
Hi-Hoや@niftyの@homepage以外でもstyle.cssやtitle.gifを読込めない場合は、同じような制限があるかもしれませんので、詳細は契約されているサーバーのCGIについての利用方法を読んでみて下さい。

ファイル修正に際しての注意

本CGIは「Shift-JIS」というほとんどの掲示板用CGIでも使われている文字コードで記述していますが、Shift-JISで書かれたperlスクリプト(CGI)をUNIXサーバーで実行させた時などに、一部の文字で発生します。

例えば「表示」のShift-JIS漢字コードは「95 5C 8E A6」ですが、この「表(95 5C)」の5Cというコードが 、メタ文字(特殊文字)「\(バックスラッシュ)」と重複しているために、二つの文字「95 5C(表)」「8E A6(示)」が「95 8E 」と「A6」と解釈され、侮ヲ(半角)という文字化けが発生します。

この問題を解決するには以下の回避策を参考にして下さい。
もっと詳しく知りたい方は「cgi 文字化け」などで検索してみてください。

回避策

文字化けを起こす文字の後に「\」を付加する。

「文字化けする文字一覧」にある文字の後に「\」を付ける。

例:"表\示する"
シングルクォート「'」で文字列を囲む。
$str = '表示する'
ただしシングルクォート「'」の前に「文字化けする文字一覧」にある文字があると「'」も別の文字として認識されエラーが出てしまうので、この場合に限り「文字化けする文字一覧」にある文字の後に「\(バックスラッシュ)」を付加する必要がある。
このCGIの例でいえば、

$cgi_title = 'Schedule Board';

$cgi_title = 'スケジュール調整表';

としてしまうと「表」が文字化けする文字で、後の「'」も別の文字と認識されエラーとなるので

$cgi_title = 'スケジュール調整表\';

と記述する。

文字化けする文字一覧

文字(コード)
—(815C)ソ(835C)Ы(845C)Ⅸ(875C)噂(895C)
浬(8A5C)欺(8B5C)圭(8C5C)構(8D5C)蚕(8E5C)
十(8F5C)申(905C)曾(915C)箪(925C)貼(935C)
能(945C)表(955C)暴(965C)予(975C)禄(985C)
兔(995C)喀(9A5C)媾(9B5C)彌(9C5C)拿(9D5C)
杤(9E5C)歃(9F5C)濬(E05C)畚(E15C)秉(E25C)
綵(E35C)臀(E45C)藹(E55C)觸(E65C)軆(E75C)
鐔(E85C)饅(E95C)鷭(EA5C)偆(ED5C)砡(EE5C)

ファイルの修正

schedule.cgiをエディタ開き、以下の個所を修正します。

各バージョン共通

以下で日付、項目欄追加の入力項目数を設定します。以下の注意を守って設定してください。
※あまり数を多く設定するとサーバーやブラウザに負荷がかかってしまうので必要最低限で設定してください。
※入力項目自体が多いと、とくにブラウザ側で処理スピードの低下が見られます。(ブラウザによる)
$add_cell_num = 15$select_num = 40とした場合、Mac版Firefox2で確実にブラウザ側で処理スピードの低下が見られたが、それ以外のブラウザではあまり変わらない。(サーバー側の処理もそれほど気にならない)

以下v1.6.0以降のみ

項目欄追加機能設定の動作 ...重要

項目欄追加機能設定「$add_cell」をCGI使用中に使用→不使用に切り替えた場合、初期の状態はevtdata.txt、schdata.txtともに追加した項目のデータは保存されたままですが、イベント設定やイベント日決定画面、スケジュール修正画面で「設定ボタン」を押すと追加した項目のデータは削除されます。
逆に不使用→使用に切り替えた場合、同様に各画面の「設定ボタン」を押すまでデータは書き込まれません。

日付、追加項目数の変更について

イベントデータやスケジュールデータがある時に「日付・追加項目数」を変更した場合、以下のような動作をします。

ファイルの設置

以上の設定が終了したら、各ファイルを所定のディレクトリにアップし、以下のとおりにパーミッションを設定して下さい。
サーバーによっては推奨値が違う場合がありますので、その場合はサーバー側の推奨値を優先してください。
特に接続プロバイダーがユーザーに提供しているホームページサービスには制限が多いです。

ファイル パーミッション
schedule.cgi 755 or 705 or 700
jcode.pl 644 or 604 or 600
style.css
title.gif
sample-key.gif
dataディレクトリ 777 or 707 or 705
evtdata.txt
schdata.txt
bbsdata.txt
666 or 606 or 600

CGIへのリンク

設置と設定が終わったらCGIへのリンクを貼って終了です。

リンク例

<a href="http:// ・・・ cgi-bin/schdule/schedule.cgi">Schedule Board</a>

その他

各ファイルについて

バージョンアップに際して

v1.6.6 → v1.6.7 NEW ...(v1.6.7)

schedule.cgiを入れ替えて下さい。
schedule.cgiを運用中でもデータはそのまま使用できます。

v1.5.5 or v1.6.5→v1.6.6

schedule.cgi、style.cssを入れ替えて下さい。
schedule.cgiを運用中にバージョンアップする場合は、データファイルの以下の部分を修正してください。

evtdata.txt

修正前:イベント番号<>イベントタイトル<>・・・・・::追加項目セレクトメニュー<>追加項目1行入力タイプ

修正後:イベント番号<>イベントタイトル<>・・・・・::追加項目セレクトメニュー::追加項目1行入力タイプ

schdata.txt

修正前:名前<>パスワード<>・・・・・::追加項目セレクトメニュー<>追加項目1行入力タイプ

修正後:名前<>パスワード<>・・・・・::追加項目セレクトメニュー::追加項目1行入力タイプ

bbsdata.txt

そのまま使用してOKです。

v1.5.4 or 1.6.4→v1.5.5 or v1.6.5

schedule.cgiのみのアップロードでOKです。

v1.5.3 or 1.6.2→v1.5.4 or v1.6.4

schedule.cgi, style.cssを入れ替えて下さい。
evtdata.txtは新機能導入に合わせデータ区切り文字等を変えていますので、新しいイベントを設定するタイミングなどでバージョンアップすることをお勧めします。
どうしても現在のイベントからバージョンアップしたい方は、以下を参照にデータ修正してください。

schdata.txt, bbsdata.txt

そのまま使用してOKです。

evtdata.txt

以下の新旧データを比較しながらデータの修正を行なって下さい。

v1.5.4およびv1.6.4のevtdata.txtのデータ並び順

イベントタイトル<>決定イベント日値(※1)<>イベント終了設定値<>イベント日決定後のスケジュール登録・修正の許可、不許可値<>イベント情報<>場所名<>場所URL<>記号1,記号2,記号3,記号4,記号5<>意味1,意味2,意味3,意味4,意味5<>(最大人数チェック)記号1用,記号2用,記号3用,記号4用,記号5用::日付1<>日付2<>日付3<>日付4<>日付5<>日付6<>日付7<>日付8<>日付9<>日付10<>日付11<>日付12<>日付13<>日付14::(追加項目セレクトメニュー1)表題00,選択1,選択2,選択3,選択4,選択5,選択6,選択7,選択8<>(追加項目セレクトメニュー2)表題00,選択1,選択2,選択3,選択4,選択5,選択6,選択7,選択8<>追加項目一行入力タイプ1<>追加項目一行入力タイプ2改行(改行コードはLF)

※1:イベント日を決定していない時は空欄
決定している時は(日付を14日分に設定、イベント日決定日を1,5,14に設定した場合)
1,,,,5,,,,,,,,,14
というように14日分をカンマ「,」で区切り、それに対応する日付の位置と番号が入る。

v1.5.3およびv1.6.2のevtdata.txtのデータ並び順

イベントタイトル<>決定イベント日値(日付の番号に対応)<>イベント終了設定値<>イベント日決定後のスケジュール登録・修正の許可、不許可値<>イベント情報<>場所名<>場所URL<>記号1<>意味1<>記号2<>意味2<>記号3<>意味3::日付1<>日付2<>日付3<>日付4<>日付5<>日付6<>日付7<>日付8<>日付9<>日付10<>日付11<>日付12<>日付13<>日付14::(追加項目セレクトメニュー1)表題00,選択1,選択2,選択3,選択4,選択5,選択6,選択7,選択8<>(追加項目セレクトメニュー2)表題00,選択1,選択2,選択3,選択4,選択5,選択6,選択7,選択8<>追加項目一行入力タイプ1<>追加項目一行入力タイプ2改行(改行コードはLF)

schedule.cgiの制作環境およびデバッグ方法

schedule.cgiの制作環境

PC PowerMac G4 1.25GHz Dual FW800
メモリー 1.25GB
サーバー Apache 1.3.33 (OSX10.3標準)
Perl Perl 5.8.1-RC3 (OSX10.3標準)

schedule.cgiのデバッグ方法

更新内容

ページトップへ戻る