ラウンジ(兼FAQ掲示板)

Site_Searchについて
過去ログ NO.1104533042
□ 梅里 [2004年12月29日15時51分]
半角の「)」が含まれるとサーバーエラーになってしまいます。
試しにこちらのサンプルでもやってみましたが同様でした。
サイト内検索CGIは、こちらの物が一番気に入ってるので、何とかなればとは思います。
□ NXer [2004年12月30日20時43分]
はじめまして。NXerです。

>半角の

イーメールはとても便利です。でも、半角カタカナと特殊文字
(機種依存の丸数字など)は禁止ですから、時々不便な時があります。
より多数の人が利用する文字コードに制約があるからです。

>何とかなれば

文字コードのことをご存知と思います。

1 jis
2 shift-jis
3 euc
4 unicode
などの文字コードをコンピュータでは使います。

さてこの場合ややこしいことに、漢字は2バイト、ところが
半角カタカナは、1バイト系文字。混在させるとshift-jisの
場合、処理できなくなるようです。

当方は、ローカルサーバーにsite_searchを設置して運用
しています。試してみました。

-----↓検索語--------------------
(フリーソフト)
----------------------------------結果の一例
1. タイトル無し update:2004/11/24,15:56:30 size:1.9kb
simpleDiaryv.1.00(フリーソフト)LastModified:2002/...
----------------------------------------------------

他にも、(空のファイル)で検索結果がでました。確認の
ために ( )、)など括弧のテストをしてもサーバーエラー
にはならず、検索例なしということでした。


そこでsite_searchの文字コード↓を見直しました。
□-------------------------
127 &jcode'convert(*value,'euc');
-------------------------
変更してみました。
■--------------------------------------------
127 &jcode'convert(*value,'shift-jis');
-----------------------------------↑文字コード

------------------
(フリーソフト)
-----------------
で検索したことろ、サーバーエラーになりました。

以下提案です。

1)site_searchを再度ダウンロードして、試してみます。

その時、およそ127行目付近の文字コードを見直してください。
'euc'でなおかつ、サーバーエラーになりますか。

当方のバージョンは、==========
# Site_Search v.1.0(フリーソフト)
# Last_Modified 2002/01/16
=====================

2)どうしても直らない時は、運用する時に、注意をします。
例えば、ヘルプメッセ―ジに半角文字を使わないように
注意を促します。
-----------------------------------------例
425 print "<input type=button onClick='alert(\"☆ 半角文字
は使えません。検索したい文字列をスペ、、、、、、(略)
----------------------------------------------------

梅里さんがこのcgiを運用されます環境(例、サーバーのOS、サイトURL
検索フォームを張り込むウェブページのURLなど)が、当方には、まった
く不明のため、見当違いの、愚ろかな提案かもしれません。
それゆえに、いろいろと検証のお手を煩わすことになるかもしれ
ませんが、解決の糸口が、すこしでもはっきりすれば幸いです。

漢字変換が開発される以前、数ヶ月間半角カタカナで通信をし
ていました。表音文字ですが、機能的で便利な面もあります。
コノ1ネンカン、ホントウニオセワニナリマシタ。ヨイオトシヲオムカエクダサイ、と。
□ 梅里 [2004年12月31日17時41分]
いろいろとありがとうございます。
ローカル(Apache for Win)でもいろいろと指示通りのことを一通り試してみたのですが、
こちらの浅識ではどうにもならないようです…。
ところで、

> -----↓検索語--------------------
> (フリーソフト)
> ----------------------------------結果の一例
> 1. タイトル無し update:2004/11/24,15:56:30 size:1.9kb
> simpleDiaryv.1.00(フリーソフト)LastModified:2002/...
> ----------------------------------------------------
>
> 他にも、(空のファイル)で検索結果がでました。確認の
> ために ( )、)など括弧のテストをしてもサーバーエラー
> にはならず、検索例なしということでした。

これは当方も同じです、ちゃんと検索されます(見たところ、2byteの括弧のようですが…)。
エラーが出るのは、1byteの (←コレとコレ→ ) です。
ちなみに、このサイトのサンプルページでも同様でした。
→ http://cgiscriptmarket.com/site_search/
□ 梅里 [2004年12月31日17時52分]
ここのサンプルページで試してみた結果、

・)

`)

(

)

でエラーが出ます。当方の環境でも同様です。

(空のファイル)
(空のファイル)
(フリーソフト)
(フリーソフト)

は、ここのサンプルページでも当方の環境でも大丈夫なようです。
□ NXer [2004年12月31日20時24分]
>(←コレとコレ→ )

詳細な検証を当方がすべきところ、お手を煩わせました。
NXerです。

次のようなスクリプトの修正を施してください。
さて、どのような結果になりますでしょうか。

--------------------------------引用
121 $value =~ tr/+/ /;
122 $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
123 $value =~ s/\r\n/\n/g;
124 $value =~ s/\r/\n/g;
125 $value =~ s/<.*?>//g;
126 $value =~ s/ / /g;
==================2行挿入
127 $value =~ s/\(//g;
128 $value =~ s/\)//g;
===================
129 &jcode'convert(*value,'euc');
---------------------------------------

次の関数は、置換関数といわれます。

~ s/A/B/g;

文字列$valueがいまBABとします。この関数でBBBとなります。

検索語に半角括弧はじめ'('と半角括弧おわり')'とが
含まれる場合は削除するというものです。
以下を、それぞれ試してみました。
---------------------
・) `) (  )
--------------------
最初の
・)
は、こんな結果になりました。
-------------------------------------------------
3. indexhyperframe update:2004/07/31,18:28:36 size:622b
この・據シ・犬鯢充┐垢襪砲蓮「・ユ・譟シ・爐・span>・オ・檗シ・箸靴、、、、
------------------------------------------
文字化けしていますが、元の文は

「このページを表示するには、フレームをサポートし、、、」
つまりこの文字列中’)’にあたる文字コードが削除されて
漢字2バイトが1バイト分ズレで文字化けしています。

これはテストですから、気にしないでください。

( ←これと  
) ←これとは
-------------------------------
!検索キーが入力されていません
-------------------------------
という結果。
検索窓に入力しても、置換関数で、半角括弧はじめ、と、
同閉じるは、このように削除できるということです。

なお、cgiスクリプトを編集する時は、直接運用中のサーバー
に転送した時、思わぬミスのために不具合を発生することが
ありえます。当方は、この種のテストをローカルサーバーで
しています。今回もテスト済みですから、この程度の修正は
おそらく問題は無いと思いますが、時節柄、色々と試されます
(していただく)場合は、慎重にお願いいたします。
ハンカクカッコニ ナヤマサレルノモ、カズアル「ボンノウ」ノ ヒトツ デショウカ。
梅里サマ、ブジノ ゴエツネン ニ ナリマスヨウニ。
□ 梅里 [2005年01月01日07時43分]
う〜ん、半角の括弧のみの検索は無理なのですね…(まぁ需要があるとは思えませんが^^;)。
とりあえずその方法で運営するつもりです。ありがとうございました!

suepon.com | CGI作成/CGI制作 | JavaScript | ドメイン検索 | バナー自動作成 | Google ダンスツール | 松浦亜弥 | H.P.memo | パソコン | ネイル

Copyright (C) 2002 - 2008 suepon , All rights reserved. Powered by CGI Script Market.