掲示板に戻る




fsearchのカテゴリ登録に関するバグ 投稿者: うす
お世話になっております。

fsearchを利用した個人サイト向けサーチを運営している者です。
この度利用者様より
「自分が登録していないはずのカテゴリに自分のサイトが表示される」
という旨のご報告をいただきました。

当該サイトのカテゴリは大、中、小カテゴリという三階層で運用しており
サイト登録の際にカテゴリに「中カテゴリーA」と中カテAの下層に存在する「小カテゴリーA-A」を選択する時に
「中カテゴリーA」「小カテゴリーA-A」のほかに「小カテゴリーA-B」の一覧にサイトが表示されてしまう現象が起きることが、こちらでも確認いたしました。
なお、これ以外の状況での発生は今のところ把握しておりません。

実際の登録サイトデータのCSVにおいては「~03_02~03_02_01~03_02_06」とカテゴリー登録されているところ、「03_02_03」のカテゴリーの一覧にも表示されてしまうというような状態です。

利用者に対しては親子関係にあるカテゴリーを選択しない、小カテゴリのみの選択を推奨する旨を案内していますが
修正いただけると助かります。
No.289622024/12/24(Tue) 9:16:32 Res


Re: fsearchのカテゴリ登録に関するバグ 投稿者: えふ
lib/search.phpの

115行の
$ary[]='%~'.$fo['ct'].'%';

$ct=str_replace('_','\_',$fo['ct']);
$ary[]='%~'.$ct.'%';
と変更して

130行の
$c_q='WHERE ('.$c_q.')';

$c_q=' WHERE ('.$c_q." ESCAPE '\\'".')';
と変更して

255行の
$ary[]='%~'.$fo['ct'].'%';

$ct=str_replace('_','\_',$fo['ct']);
$ary[]='%~'.$ct.'%';
と変更して

260行の
$c_q='WHERE ('.$c_q.')';

$c_q='WHERE ('.$c_q." ESCAPE '\\'".')';
と変更してください。
すいません。
No.289642024/12/26(Thu) 8:14:25 Res


Re^2: fsearchのカテゴリ登録に関するバグ 投稿者: うす
ありがとうございます。
カテゴリーページに登録していないサイトが表示されてしまう状態は解消されました。

ただこちらでご教示いただいたカテゴリー内のサイトの数字にはカウントされてしまうようです。
http://cgipal.com/cgi/webtree/main.cgi?action=res&;resno=28946
配布されていないカスタムしていただいた箇所なのでお時間ある時で結構なのですが
こちらの修正方法もご教示いただけると助かります。
No.289652024/12/26(Thu) 20:43:58 Res


Re^3: fsearchのカテゴリ登録に関するバグ 投稿者: えふ
index.phpの
$stmt=$o_db->SetPH("SELECT count(id) FROM data WHERE category like ?",$pdo);

$stmt=$o_db->SetPH("SELECT count(id) FROM data WHERE category like ? ESCAPE '\\'",$pdo);
と変更して

$key='%~'.$v.'%';

$vv=str_replace('_','\_',$v);
$key='%~'.$vv.'%';

と変更

$key='%~'.$l.'%';

$ll=str_replace('_','\_',$l);
$key='%~'.$ll.'%';

と変更
以上です。
No.289662024/12/27(Fri) 4:35:15 Res


Re^4: fsearchのカテゴリ登録に関するバグ 投稿者: うす
カスタマイズ箇所にも関わらずご対応いただきありがとうございました。
No.289672024/12/28(Sat) 21:15:57 Res