[Tep-j-general] Re: 「advanced_search.php」の「errorno」について

Zurück zum Archiv-Index

hamada bungu****@leo*****
2006年 10月 5日 (木) 11:07:57 JST


こんにちわ。

On Thu, 5 Oct 2006 00:23:18 +0900
"西山肇" <nyoro****@gmail*****> wrote:

> ですが、なぜか「(」と「)」(半角カッコ)で検索すると、また以前の「.../advanced_search.php?errorno=10000000&keywords=%29」
> のような結果になります。

/catalog/includes/languages/japanese/advanced_search.php

> 括弧を使用して、論理的な組み合わせを指定することができます。例えば、マイ
> クロソフト AND (キーボード OR マウス OR "visual basic")として検索する
> と、"マイクロソフト" + "キーボード"か"マウス"か(正確に!)"visual basic"
> というキーワードをふくんだ商品を探します。

とあるとおり、半角括弧は演算子扱いの特別な文字なので。

> 何か解決策はありますでしょうか?

tep_parse_search_string()のコードを見てみると、「(」と「)」の数をそれぞ
れカウントしてて、これが同数でなければ必ずfalseを返すようになってるみた
いです。

イヤならこの計算or判定してる箇所を殺しちゃう事になりますが、そうなると論
理検索時、括弧の数が対応してなくてもそのままMySQLに投げそうです→SQLがエ
ラーになると思われ。それでも良いんですかね?

> このadvanced_search.phpの「errorno」はなんなんでしょう?

「検索でエラーが出た」旨を他ファイルに通知するための引数みたいです。エラー
状況に応じていろいろ足されるみたい。


はまだ




Tep-j-general メーリングリストの案内
Zurück zum Archiv-Index