dポイントプレゼントキャンペーン実施中!

PHPとMySQLで検索システムを構築中の初心者です。
検索フォームに「道路」と書くと「\0\0」と変化し、さらに懲りずにもう一回検索ボタンを押すと、「\\0\\0」と\が増えていきます。
ちなみに「道 路」と間にスペースを置いてand検索は出来ます。
どうすれば解消出来るのでしょうか?
よろしくお願いします。

A 回答 (2件)

もう解決されましたでしょうか。


こちらでも同じ状況になったので調べてみました。
応急的に直すなら、検索フォームに
<input type="hidden" name="dummy" value="雀の往来">
と、確実にEUCコードの文字列をPOSTすることで直るようです。

根本的に直すなら、php.iniにて、mbstringの設定を見直した方がいいかもしれません。

参考URL:http://www.hatena.ne.jp/1124172785
    • good
    • 0
この回答へのお礼

ありがとうございました。見事解決しました。
感謝、感謝です。
おまじないの言葉、本当にありがとうございました。

でも根本的には直ってない、訳ですね。
実は、社内でXOOPSを立ち上げて、ナレッジシステムを立ち上げているのですが、そこでも検索フォームに「道路」と検索すると、エラーが出てしまいます。
教えていただいたurlを参考に、mbstringの設定を見直してみます。

お礼日時:2005/09/05 10:14

もしかしたらこれで解決するかもしれません。


検索フォームに「表示」や「能力」、「ソース」などは正常に機能しますか?
しないのであれば、
stripslashes ( string str )
の関数を、検索フォームに入力する値を使う前に、使ってみてください。

例えば、検索にこんな関数を使っていたとします。
function search($word){
mysqlの接続など
return $result;
}

実際に使用している。直前で、

$word=stripslashes ( $word );
$result=search($word);

こんな感じです。

この回答への補足

awazak 様 回答頂きありがとうございました。
>「表示」や「能力」、「ソース」などは正常に機能しますか?
はい、ちゃんと検索結果が表示されます。

また、
 $word=stripslashes ( $word );
を検索フォームに入力する値を使う前に、使ってみました。
すると今度は、「道路」と入力して、検索ボタンを押すと、文字が消え、検索できませんでした。他の文字「表示」や「能力」、「ソース」などはちゃんと表示され検索も出来ます。

なお、検索フォームは

$word=stripslashes ( $word ); //教えていただいた関数はここに入れてみました。

echo "<p>検索するキーワード(全角)の一部を入力して、</p>\n";
echo "<form action=\"tecris_kensaku200.php\" method=\"post\" >\n";
echo "<p>検索キーワード:<input type=text name=\"word\" value=\"$word\" size=45 ></p>\n";
echo "<input type=\"hidden\" name=\"sig\" value=\"kkb\">\n";

で検索は

$result = mysql_query($sql);
としています。

補足日時:2005/08/22 14:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!