過去ログ 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分]う〜ん、半角の括弧のみの検索は無理なのですね…(まぁ需要があるとは思えませんが^^;)。 とりあえずその方法で運営するつもりです。ありがとうございました!
|
|