申し訳ありません、管理の都合上サポートページのアドレスは http://snap.shot.cx/docs/CGI/ に変わりました。旧アドレスは既に消失しています。


Book Image

らくらくCGIキット サポートページ

最終更新日:$Date: 2002/08/17 07:18:37 $

このページでは、翔泳社刊の弊著「らくらくCGIキット」(ISBN4-88135-573-2)のサポート情報を提供していきます。

ダウンロード バグ情報 サポート情報 お問い合わせについて 追加情報

ダウンロード

[2002/8/17] 気がつけば本書出版より4年が経過してしまいました。内容的にかなり古くなってきたこともありますので、本書所収のスクリプト類をダウンロードできるようにします。
どうぞ以下を参照してください。

内容は、本書第2刷に収録されているものと全く同一です。下記↓バグ情報のうち、「第2刷で修正されています」という記述の無いものは適用されていませんので、別途下記を参照してください。また、配付物は全くの無保証です。あらかじめご了承ください。

質問については受け付けますが、「本書○○ページに書かれています」というかたちでお答えすることがあります。本書が手元に無い方のご質問は、出来るだけお控えください。
守れない方へはお返事を差し上げないこともあります。あらかじめご了承ください。


バグ情報

スケジューラで月別タイトルが表示されない

[00/03/21] スケジューラcalで、月別タイトルを表示させるとき(本書7-4-3「カレンダーのオプションを追加」)、年ごとのファイルの説明に誤りがありました。
申し訳ありませんが、次のように読み替えてください。

誤) 「subject1997.txt」のように年ごとにファイルを用意します。
正) 「1997subject.txt」のように年ごとにファイルを用意します。

また、さきの2000年対応「サポート情報」参照)に対応漏れがあり、2000年以降正しく表示されませんでした。これに対応するには、ファイルcal.plの入れ替えが必要となります。以下のリンクからダウンロードして、古いファイルと置き換えてください。

また、2000年以降の年月表記は、(1999年は"99", 2000年は"00"というように)2桁表記になりますのでよろしくお願いいたします。


メールサーバへの接続に失敗する

[99/11/21] 「ウェブメール」で、「メールサーバに接続できません。」と表示されることがあります。これは(もちろん)設定ミスの可能性もありますが、本書所収のプログラムでは、一部のメールサーバ(SMTPサーバ)に接続できないことが分かりました。具体的には、SMTPプロトコルの改行コードを厳密に解釈するサーバ(例:qmailなど)には接続できません。

これに該当するかどうかを調べるには、「ウェブメール」をデバッグオプションつきで動作させてください。custom.phで、

30: $debug  =  0;       # デバッグを有効にするには'1'を指定

というところを $debug = 1 とします。こうすると、SMTPサーバとのやりとりが表示されるようになります。

Server Msg: 451 See http://pobox.com/~djb/docs/smtplf.html.

などと表示された場合、この問題に該当しますので、以下のリンクからダウンロードして、古いファイルと置き換えてください。


ログイン画面が2度表示されてしまう

[99/11/21] 「スケジューラ」と「バナーエクスチェンジ」で、一度ログインした後、ログアウトしなかった場合、しばらくして再度ログインするときに、ログイン画面が2回表示表示されてしまうという不具合がありました。
調べたところ、ログイン時に有効期限切れのセッションが残っていた場合、古いセッションをブラウザに渡した後で削除していることが分かりました。

この不具合を修正するため、CgiUser.pmに変更を加えました。変更箇所が多いため、新しいCgiUser.pm全体を配布することにしました。以下のリンクからダウンロードして、古いファイルと置き換えてください。


スケジューラがIE3.02で動作しない

[99/10/20] この不具合は初版第2刷(1999年7月20日発行)以降の版では修正されています。

[98/11/5] Internet Explorer 3.02を使っていると、スケジューラで「日付をクリックしても月間スケジュールのページが繰り返し表示されてしまう」という不具合がありました。
調べてみると、URL生成で不正なタブコードが混入していることが分かりました。

cal.plで、

225: print '<A HREF = "'.$query->script_name.qq*
226:     ?day_num=$day_num&mon_num=$mon&year_num=$year&account=$account&godaily=1"><B>$day_num</B></A>\n*;
のようになっているところを、
225: print '<A HREF = "'.$query->script_name.
226:     qq*?day_num=$day_num&mon_num=$mon&year_num=$year&account=$account&godaily=1"><B>$day_num</B></A>\n*;

とするなどとして、URLにタブコードが含まれないようにしてください。赤字の部分が修正箇所となります。

なお、この問題はNetscape Navigator(バージョン2.0〜4.5)では発生しません。


添付CD-ROMに収録されたスクリプトの改行コードがおかしい

[99/10/20] この不具合は初版第2刷(1999年7月20日発行)以降の版では修正されています。

[98/9/25] 添付CD-ROMに収録されたスクリプトの改行がCRになっているとのご指摘をいただきました。調べてみたところ、次のような状況になっていることが分かりました。

  1. ソースリストとして収録されている、拡張子.cgiおよび.plのファイルについて、改行コードがCRになっている
  2. 同じく収録ソースの拡張子.txtのファイルについて、CRまたはCR+LFになっている
CD-ROM収録のソースリストを、そのままPC上にコピーして修正する場合は、保存する改行コードに注意してください。

圧縮されているファイル(拡張子.lzhおよび.tgz)の中身については問題がないようです。
但し、.tgzの圧縮ファイルを解凍する場合、解凍ツールによっては(WinZipなど)改行コードがCR+LFに変更されてしまう可能性があります。ご注意ください。

お手数をおかけし申し訳ありません。

[98/11/10] 前記の補足になりますが、各ディレクトリに納められたインストーラezinst.plも改行コードがezinst.plになっています。インストーラを使用する場合、ezinst.plバイナリモードで転送した後、サーバ上で次のコマンドを入力してください。

$ mv ezinst.pl _ezinst.pl
$ perl -e 'while(<>){ s/\r/\n/g; print; }' < _ezinst.pl > ezinst.pl
$はサーバのプロンプトです(サーバによって異なります)。最初のmvコマンドで、ezinst.plを別の名前に変更しています。次のperlのコマンドは、改行コードをCRからLF(WindowsマシンではCR+LF)に変換します。

たびたびお手数をおかけし申し訳ありません。


Perlのバージョンによって、モジュールが動作しない

[99/10/20] この不具合は初版第2刷(1999年7月20日発行)以降の版では修正されています。

[98/9/16] 本書所収のPerl5モジュール CgiLock.pm に不具合がありました。Perlのバージョンが5.003の場合、

211: no strict 'refs';
という行でコンパイルエラーを起こしてしまい、ブラウザ上で "500 Server Error" を起こしてしまうようです。

このようなの問題に該当する方は、当該行を

211: # no strict 'refs';
のように、先頭に # マークをつけてコメントアウトしてください。

なお、上記に該当するかどうかは、次の方法で調べることができます。

  1. Perlのバージョンを確認する
  2. HTTPサーバのエラーログを調べる
Perlのバージョンが5.004_01以上の場合は問題がありませんので変更は不要です。

[98/9/20] ひきつづき調査しましたが、Perl5.003_07 (Patch Level 7) では所収のソースで動作しました。ただ、Patch Levelが低い場合や、Perlの標準モジュールのインストール状態(strict.pmがインストールされていない場合等)によっては、上記の現象がおこる可能性があります。


サポート情報

ハッピーマンデーに対応した祝日の表示

[00/01/06] 「改正祝日法」(通称:ハッピーマンデー法)により、2000年より「成人の日」と「体育の日」が、それぞれ「1月の第2月曜日」「10月の第2月曜日」に変更になりました。しかし、本書所収のスケジューラでは、この新しい祝日を表示することができませんでした。
そこでスケジューラに改良を加え、祝日ファイル(holiday.txt)のフォーマットを拡張しました。

プログラムで変更されたのは、cal.plです。また、拡張された祝日ファイルholiday.txtも必要になります。
以下のリンクからダウンロードして、既存のcal.pl, holiday.txtと入れ替えてください。

ただ、この置き換えによって別の問題が発生します。1999年以前の祝日も新しいルールに従って表示されてしまうのです。
これに対応するには、1999年以前のためのholiday.txtを別に用意する必要があります。たとえば、holiday1999.txtというファイルを用意しておけば、1999年の祝日にはholiday.txtではなくholiday1999.txtが利用されるようになります。
以下のリンクにあるholiday1999.txtは、CD-ROM収録のholiday.txtと同じものですが、参考までにアップロードしておきました。必要な方はご利用ください。


Perlのバージョン5.003以降を使いたいときは?

[99/10/20] もしPerl 5.003以降がインストールされていない場合は、サーバの管理者の方に相談してみてください。
サーバのインストール状況によっては、perl5というコマンド名でインストールされている場合もあります。
この場合、

$ which perl5

などとして、

/usr/bin/perl5

と出てきたら、CGIスクリプトの先頭を

#!/usr/bin/perl5

とすることで実行できるようになります。
インストーラを使いたい場合は、

$ perl ezinst.pl -p /usr/bin/perl5

などとしてみてください。詳しくは本書Chapter3を参照してください。


Perlのバージョンを確認する方法

Perlのバージョンが5.003以前の場合、本書に掲載されている、すべてのCGIスクリプトは動きません。(実際には、Perl5.001以上であれば動作すると思われますが、確認がとれませんのでサポート対象外です)
次のような方法で、サーバで使用しているPerlのバージョンを確認することができます。

  1. CGIをインストールしたいマシンに、telnetでログインする
  2. コマンドラインから、以下のようにタイプする。
    $ perl -v ($はプロンプト)

こうすることで、Perlのバージョンが表示されるはずです。


HTTPサーバのエラーログを調べる方法

HTTPサーバのエラーログが記録される場所は、HTTPサーバによって異なります。
デフォルト設定では、NCSAやApacheの古いバージョン(1.2.*)では、
/usr/local/etc/httpd/log/error_log
Apacheの新しいバージョン(1.3.*)では、
/usr/local/apache/log/error_log

になっています。ここに記録されている内容を確認することで、エラーの原因が追求できる場合があります。参考にしてください。


お問い合わせについて

書籍の購入方法/本書の内容(誤植・落丁など)のお問い合わせについては、お手数ですが翔泳社さんのほうへ直接お問い合わせください。

電子メール:
  mail-web@shoeisha.co.jp
電話・FAX:
  出版局営業部 TEL 03-5362-3810 / FAX 03-5362-3817
  出版局編集部 TEL 03-5362-3833 / FAX 03-5362-3818
翔泳社連絡先一覧

購入に関しては、オンラインショップSEshop.comを通じて購入することもできます。

本書の技術的なお問い合わせ(○○が動かない等)については、著者がお答えします。受付は電子メールのみになりますのでご了承ください。
電子メールのアドレスは、

cgikit@readmej.com

で受け付けることになりましたので、よろしくお願いします。

また、ご質問をお寄せくださる際は、以下の内容を明記していただくようお願いします。

  1. 動作させようとしたモジュールの種類(ウェブチャット,スケジューラ等)
  2. 実際に行った操作(できるだけ詳しくお願いします)
  3. (プロバイダの場合)プロバイダ名
  4. サーバのOS
  5. Perlのバージョン
  6. (可能であれば)エラーログの内容
  7. 使用したブラウザの名称およびバージョン

明記されていない場合、せっかくお問い合わせいただいてもお役にたてないことがあります。ぜひとも明記してください。



追加情報

[2002/4/17] cal2の配付物の中に、jcode.plが含まれていないという御指摘をいただきました。申し訳ありません
他の配付物にも含まれているjcode.plからコピーしてお使いください。よろしくお願いします。

[2001/4/19] まさに「中旬」ギリギリとなってしまいました。スケジューラ「cal」の新バージョンをリリースします。

ここでまず最初にお断りしておきます。今回のリリースは、データには上位互換性がありますが、設定ファイル(custom.ph/design.txt)には互換性がありません。新しいディレクトリにインストールし、データのみをコピーしてお使いになることを強くお薦めします

インストール方法は、本書所収のezinst.plを使うことができます。本書所収の他のスクリプトと同様に、次のようにコマンド入力してください。

$ ./ezinst.pl cal2.tgz

telnetがお使いになれない場合は、解凍ツールを利用して解凍する必要があります。ファイルはtar+gz形式で圧縮されていますので、対応している解凍ツールを利用してください。

リリースにおいては十分なテストをしているつもりですが(私=たかの自身、実務で利用しています)、使用する環境等によって「万が一」がないとは言い切れません。データはこまめにバックアップを取るように心がけてください。
「万が一」データが消失した場合でも、一切の保証は致しかねますので御了承ください。

質問・ご要望は、通常どおりメールにて受け付けます。可能な範囲でお答えしますので、どうぞお気軽にご連絡ください。よろしくお願いします。

[2001/3/25] 発売より既に3年近く経過しているのに、今でも買っていただいている方が多数いらっしゃるようで、感謝の至りです。
そこで、本書所収のCGIキットの中でも最も人気の高かった、スケジューラ「cal」の新バージョンのリリースを予定しています。要望の高かった

といった機能を引っさげて、現在テスト稼働中です。

リリースは2001年の4月中旬を予定しています。一部の方には大変お待たせして申し訳ありませんが、もうしばらくご辛抱ください。

現時点で改訂版の発売予定はありませんので、本書をお買いあげいただいた方へのボーナストラックとお考えいただけると嬉しいです。


Maintained by Yukimasa Takano.
Copyright (C) Yukimasa Takano & Hisako Maeda, 1998 - 2002, All Rights Reserved.