CGIプログラム製作記

日記風独り言のページのプログラム製作顛末記 その2
 幾つかの問題点をクリアーして、何とか本格的に使用に耐えそうな CGIプログラムが完成しました。
原作者のじゃわさんのサポートページを見ると、幾つかインストールから初期使用時の問題が上がっております。そうした問題点の解決に繋がるかもしれませんので、私の改良版プログラムをダウンロードできるようにしました。LZHで圧縮してありますので解凍してご使用ください。ライブラリの cgi-lib.pl は同梱しておりませんので、じゃわさんのページなどからダウンロードしてください。また、原作のじゃわさんの My memory は、何人かの方から初期の管理用パスワード設定でエラーになるという指摘があります。私がいろいろやってみたところ、2バイトコードの変換でエラーになっているようです。設定画面で設定するパラメータの内、タイトル・メッセージ・標準文字のスタイル にデフォルトで設定されている2バイト文字をパスワード設定と同時に全て削除してみてください。とりあえずパスワード設定はできると思います。しかし、記事の新規投稿などで 2バイトコードを使わないわけには行かないので、これは根本的な解決にはなりません。私の環境では 70行目当たりにある スクリプトの
$::jcode_liblary = '../perl/jcode.pl'; の後に
require $::jcode_liblary;
を追加したらエラーが出なくなりました。

<改善点>
 一般の読者からは、CGIを指定するのではなくて 普通の HTMLファイルをURLで設定するようにしましたので、初期の管理用にログインする画面は不用です。一応、パスワードを入力する画面がいきなり表示されるのもどうかと思い、下記のような画面に変更しました。


その後、新規投稿や編集した後に、その内容を送信すると、HTMLファイルへの記事設定画面が表示されます。


ここで、記事の何番目から何番目を出力するか、そしてその HTMLファイルの名前と「戻る」「進む」でリンクするページのURLを入力するようになっています。通常日々の更新では、「進む」のページはありませんので、デフォルトでは空欄にしています。しかし、月ごとにページを分ける場合など 次の月へのリンクを入力したり、過去のページの訂正をした後に対応した HTMLファイルを出力しなおす場合などは、「進む」のリンクが必要になります。
それらの設定をした後、「送信」ボタンを押すと 設定の内容で HTMLファイルが出力されます。出力が終わると出力したページを表示するかどうか確認する画面が表示されます。


その他の改善点:
● また、下書き用機能として 年の桁を 2000年(月日はいつでも)にしておくと、htmlファイルへは出力されません。個人の記録に留める場合とか、文章が完成しないので当面公開したくない場合などに有効です。(電車の中で更新中に駅についてしまって、とりあえず中途半端に入力した文章をリセットせず記録しておきたかったので) 下書きは後日正式に公開するときに編集機能で、年を 2003年とかに変更して html出力を行うことで その記事が 公開用htmlファイルに出力されます。
● JPEGファイルの JFIF のみ対応だったのを Exif フォーマットにも対応するようにしました。(最近の画像編集ソフトはデフォルトが Exifファイルフォーマットで保存するものがあるため)

<バグ?とり>
 設計の仕様を知りませんので、バグかどうかは分かりませんが、使ってみたところ幾つか改善した方がよさそうな点に気づきました。
● 記事の削除画面で、削除のチェックボックスにチェックを入れて「送信」ボタンを押して画面が更新されてもまだ削除したはずの記事が残っているように見えます。もう一度そのまま送信ボタンを押したりすると画面から記事が消えますが、実は一回目の送信ボタンでログから記事は削除されています。ちょっと戸惑うので、送信ボタンを一回押したときに削除記事を消すようにしました。
● 多分、元のスクリプトでは複数ページになったとき <prev> <next> ボタンによる表示の更新がおかしかったと思うのですが、これを修正しました。
● 記事を削除した後、その番号が欠番になっておりました。欠番のままにするか、番号を詰めるかは考え方によりますが、 htmlファイルの出力を論理的な記事番号で行うようにしたため、指示と出力の不一致が発生するのを避ける目的で欠番を詰めるように修正しました。
<今後の改善目標>
● 画像ファイルのファイルサイズが、設定値のMax(デフォルトでは 51KB)より大きかったとき、サーバーエラーになって、折角入力した記事が消えてしまいます。スクリプトを読むと画像ファイルのアップの前にログファイルを書き換えて、クローズしているようなんですが、まだ詳しく追いかけていません。一ヶ月の間に 2度ほど失敗してしまったので、是非直したいと思います。
★ 上記改良をしました。(11/11)  改善のためサーバーエラーになる上限を 200KB(設定変更可能)として、一旦サーバーに受理してからチェックし、画像ファイルのサイズが設定上限値を超えた場合は、その後のhtml出力記事選択画面で 警告を表示するだけとしました。ファイルサイズが大きすぎて問題ある場合は、ローカルマシンで画像ファイルを再圧縮するなどの編集後 編集・削除画面で新しい画像ファイルだけを再度アップロード出来ますので、折角入力した文章がログに残らないと言うことは殆どないと思います。(200KBでも心配の向きは、いくら大きくしても構いませんが)


● 改善ではないのですが、このスクリプトにインスピレーションを受けて、新しいプログラムを作ってみたくなりました。まだ詳細な仕様も考えておりませんが、βが出来たらアップします。お楽しみに!

私の改善したファイルはこちらからダウンロードして下さい。 尚、改善点の質問は、じゃわさんではなく 私の方にお寄せください。

My Diary Page is here !
謝辞:このスクリプト改良に当たっては CGI Station の My Memory - version0.32b を使わせていただきました。


前のページへ    NAME.gif    次ページへ
総アクセス数