07/04/26 02:15:43
【 CGI&PHP名 】 簡易高機能検索専用データベース ソート版(2.10s)
【 配布先URL 】 URLリンク(cgiroom.nu)(改造OK、再配布禁止)
【 依頼期限 】 無し
【 依頼内容 】
このcgiはcsv及びtxt形式のデータベースを検索するスクリプトです。
自分はデータベース元を、タブ区切りのtxt形式にしています。
設置してからかなり経っていて特に問題無く運用出来ていたと思っていたのですが、
テキストボックスでkeysパラメーター(列指定)を使ってキーワードを指定する検索をする際、
キーワードを数字にして検索すると、該当していないはずデータを抽出することがあるのに気が付きました。
検証してみたところ原因は行番号を抽出対象にしてしまっているという事によるものでした。
例えば、「20日」が含まれるデータを検索する際に、「20日」とすれば何の問題も無いのですが、
「20」で検索すると、データベース元の20行目・120行目・200~209行目・220行目・・・・・2000~2999行目etc.も該当データとなってしまうという事です。
ちなみにkeyパラメーター(列指定無し)を使った場合にはこの問題は発生しませんでした。
原因がわかったとは言えどもスクリプトに関してはほとんど無知なので・・・orz
本来なら、配布元で問い合わせをしたかったのですがサイトが長らく更新されていない上に、
連絡手段がわからず、ここを頼りに来てしまいました。
該当するデータが検索されないという致命的なバグでは無いからだと思うのですが、
今のところサイト利用者(100前後/日)からこの件に関する苦情は1度も届いていません。
その為あまり急ぎでは無く、気長に待ちますのでどうか宜しくお願いします。