テキストログファイルの配列操作で動かしている「画像掲示板の泉」の投稿情報削除プログラムに不具合があったため、プログラム修正をした経緯をご紹介しています。合わせて、MSのVisual Studio Codeのご紹介もしています。
画像掲示板の投稿削除プログラム
「画像掲示板の泉」には投稿削除機能も当然ご用意していますが、このプログラムに不具合が出ておりましたのでバグ修正を致しました。ディレクトリ型検索エンジンも同じですが、登録した情報を削除できないことが一番トラブルになりがちのため、急ぎで対応をいたしました。
画像掲示板の仕様
ファイルアップロード機能の練習がてら作った画像掲示板の泉ですが、元々フリーの掲示板CGIをサンプルに作ったこともあり、テキストログファイルを使った古めかしい作りの掲示板になっています。
取り回しがよいSQLを使えるDB型掲示板に作り直そうと何度も考えてはおりましたが、セッション数が毎度二桁台で推移してしまっている掲示板を大改修するのが手間で、未だテキストログファイル仕様のままにしておりました。
投稿データがテキストログファイルファイルのため、投稿・編集・削除をするためには、いちいちファイルをOPENして配列に放り込み、追加~編集~削除をして~最後はファイル上書きという昔ながらの処理を走らせる必要があります。しかも、スレッド型掲示板のため、レスが投稿された際にはスレッドを最上位に移動したりもあるため、鬼のような配列操作を裏で走らせておりました。
配列操作に生じたバグ
今回見つけた不具合は、その肝心の配列操作にバグがあったことが原因で、ファイル最終行にゴミデータが残り、一番古いスレッドの中身が壊れることがあるといったものでした。
下記画像のような配列操作だらけのPHPを今回修正していましたが、データ移行の手間とかを考えると、結局このタイミングでのDB型への改修はやれませんでした。
昔はポインタとか配列操作とかが楽しかったですが、今となってはクエリを一本書く方がどれだけ楽で安全かとは思ってしまいます。
おわりに
今年に入って、数年間放置していたサイトの復旧作業ばかりしてしまっております。なんとも恥ずかしい限りですが、お気づきの点があれば修正に努めておりますので、ブログのコメント欄、Twitterや、お問い合わせフォームからご一報いただけると助かります。
余談ですが、皆さんは既にお使いかもしれませんが、私もサイトの修正にMSのVisual Studio Codeを使い始めており、そのお陰で修正がだいぶ楽になりました。
画像編集でphotoshopとかを使う流れでなんとなくDreamweaverを使ってきましたが、Adobeのソフトは重いは固まるはで悲惨なことになってきたので、このVS Codeのサクサク動作感とファイル操作の使い勝手の良さには驚きでした。これで無料というのは本当に凄い感じです。