• ベストアンサー

検索フォームに「道路」と書いて検索すると文字列が「\0\0」に変わります

taskuniの回答

  • ベストアンサー
  • taskuni
  • ベストアンサー率71% (49/69)
回答No.2

もう解決されましたでしょうか。 こちらでも同じ状況になったので調べてみました。 応急的に直すなら、検索フォームに <input type="hidden" name="dummy" value="雀の往来"> と、確実にEUCコードの文字列をPOSTすることで直るようです。 根本的に直すなら、php.iniにて、mbstringの設定を見直した方がいいかもしれません。

参考URL:
http://www.hatena.ne.jp/1124172785
jacal
質問者

お礼

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

関連するQ&A

  • Shift_jisの『十』を含む文字列検索エラーについて

    宜しくお願い致します。 PHP+MySQLでシステムを構築しております。 PHPで作製したフォームからSQL文を発行する際に漢数字の『十』が含まれるとちゃんと検索されません。 ネットで調べてみたところ、この『十』はShift_jisでは『5c』文字となるため、『十』の2バイト目が『5c』(\と同じ)なので、2文字目が消されてしまい、うまく検索できないという事がのっておりました。 この現象を回避する為に、検索時に『十』の後にバックスラッシュ(\)を3個付加してみたところ、うまく検索できました。 そこで、PHPのフォーム上で正規表現により『十』を検索し、『十\\\』に置き換えてみようと試みたのですが、PHPのフォーム自体がShift_jisで作られている為、『十』を認識できず、PHPエラーが返されてしまいます。 こういった場合、どの様にすれば回避できるのでしょうか? ご教授の程、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • 検索フォームにMysqlを利用するメリット

    自分のウェブサイトに検索フォームを設置したいです。 Mysqlとphpを利用して作ると言うことは解ったのですが、 Mysqlを利用しなくても、外部csvファイルなどをサーバーにアップし、 それを読み込んで一致条件から検索結果を出力することも可能 なのかなと思います。 お伺いしたいのですが、わざわざmysqlを利用するメリットって なんなのでしょうか。 ちなみに作りたい検索フォームは、テキスト+チェックボックスで、条件の and/orも付けてやる予定です。 CSSやphpを利用した問い合わせフォームなど基本的な事が一通り出来るレベルです 宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • 検索ワードを(1)クリアされないようにしたい、(2) スペース区切りしたい

    ◆ 環境: PHP 5.0.3 MySQL 4.0.14b(Win)(←古いこと承知) IIS 5.1 ◆ 背景 質問 No.1212008にも書きましたが、PHP+MySQLで簡単な検索システムを 作っている初心者です。 ・001.htm に設置したこの検索フォームからPOSTすると ・002.php に渡され、これがHTMLを組み立てて検索結果を表示します。 ・002.php には、001.htmと同じ検索フォームを設置してあります。 ・検索フォームは name="1" ~ "4" までのテキストフィールドと検索ボタンで、  次のようなSQL文でWHERE文を構成しています。 $sql = "select * from t_url where (fullpass like '%$title1%')"; if (strlen($title2) > 0) { $sql .= " and (fullpass like '%$title2%')"; } if (strlen($title3) > 0) { $sql .= " and (fullpass like '%$title3%')"; } if (strlen($title4) > 0) { $sql .= " and (fullpass like '%$title4%')"; } ◆ 質問は2点です。 (1) 001.htmから検索し、002.php結果がリストアップされると、 002.phpにある検索フォームに入力したキーワードはが当然クリアされています。 また、002.php から再検索しても、同じくクリアされてしまいます。 いずれの場合にも、テキストフィールドに入力した内容を残す(引き継ぐ)ことは 可能でしょうか?PHPとかJavascriptとかで実現方法はあるのかもしれませんが ちょっと見当がつきません。 (2)今は1フォーム・1キーワード×4テキストフィールドなので4ワードまでは AND条件で絞り込みできますが、 Web検索ライクに、検索フォームのテキストは1つ、全角&半角スペースで区切った キーワードがAND条件でつながるようにするのも敷居高いでしょうか。 アドホックな感じがするので、何とかできたらと思うのですが。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHP+MySQLでスペースによる絞込み検索をかける方法

    宜しくお願いします。 PHPとMySQLで検索フォームを作っているのですが、OKWebやGoogleの様に、入力フォームにスペースで絞込み検索が出来る様にしたいと思っています。 実際に作ってみると、大変な問題に気付きました。 PHPからMySQLにSELECT文で絞込み検索かける時には、 mysql_query(select * from DB名 where COLUMN名 = '検索内容' and COLUMN名 = '検索内容'); といった形にしなければならないと思いますが、検索する人によってスペースで区切る回数は分からないので、実際に区切られた回数だけANDを自動的に作らなければ絞込みが出来ない事に気付きました。 しかし、PHPの関数だけで入力されているスペースの回数を割り出し、その数だけクエリの中に『and COLUMN名 = '検索内容'』を自動生成する方法なんて、あるのでしょうか?世の中の検索サイトを見ると、至極当たり前の様に出来ているので、何かやり方があるのだろうとは思いますが、皆目検討がつきません。どなたか教えて頂けると助かります。 何卒、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • Dreamweaverで検索フォーム

    はじめまして。 DreamWeaverを使ってPHP+MySQLでWEBアプリを作っております。 ログ表示部分まで完成して、検索用のhtmlフォームから条件を指定して検索結果のみをSELECTして表示させたいのですが、「and検索やor検索」ができなくて困っています。 他に似たような質問をされている方もいますが、書いたソースが異なっているように見受けたので、投稿させていただきました。 宜しくお願いします。 検索フォーム <form method="post" action="view.php"> <input type="text" name="key"> <input type="submit" name="search" value="検索"> </form> ログ表示PHP(view.php) //検索キーワードの初期値を設定する $colname_Recordset1 = "%"; if (isset($_POST['key'])) { $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['key'] : addslashes($_POST['key']); } $sql = "SELECT * FROM shoplist"; if(strlen($colname_Recordset1) > 0){  $colname_Recordset2 = str_replace(" ", " ", colname_Recordset1);  $array = explode(" ", $colname_Recordset2);  $where = "where ";  for($i=0; $i<count($array); $i++){   $where .= "address like '%$array[$i]%'";   if($i < count($array)-1){    $where .= " and ";   }  } } mysql_select_db($database_connTest, $connTest); $Recordset1 = mysql_query($sql.$where, $connTest) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1);

    • ベストアンサー
    • PHP
  • php+mysqlで検索フォームの作成について

    ごく最近PHPとmysqlを勉強しだした初心者です。 PHPでDBの検索フォームを作ろうとしているのですが、どうしてもわからないので質問させていただきました。 検索フォームに電話番号を入れると、該当する人の情報を表示させるようにしたいと思ってます。 私の持っている本では、SQLの検索を行うにはSELECT句を使い   SELECT フィールド名 FROM テーブル名 WHERE 条件文; という風にあって、条件文がid=1とかの定数で指定したものしかありません。 検索フォームに入力された数値($_POSTの値)を条件文にいれて、検索フォームで入力された電話番号を検索するようにできますか? もしできないなら、どのような形で作ればよいでしょうか? 贅沢ですが、できれば簡単に解説もしていただけると非常に助かります。 ご教授の程、何卒よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • フォームに入力された内容を,次ページのフォームへ活かすには

     初心者ですのでよろしくお願いします。  現在 php と MySQL でデータ検索システムを制作しております。  データベースの検索は完成したのですが,利用者のために次のようなフォームを利用したいと思っています。 (1)フォームから検索語を入力したとします(例えば”北海道 小樽”)。 (2)するとデータベースから条件にあった内容が返されます(例えば小樽駅の写真など)。検索結果の上部には,検索入力フォームが配置しています(←ここがポイント)。 (3)しかし,検索結果が多すぎるため,新たに検索語を追加して検索しようとします。 (4)その時に,入力フォームには何も文字が入っていない状況になっています。ここに,今回の例であれば”北海道 小樽”というキーワードが残っていて,追加のキーワード入力を可能にしたいです。  グーグルなどの検索エンジンでも,検索した後も入力フォームに検索キーワードが残っていますよね?それをしたいのですが,簡単そうでいろいろと本を調べても見つかりませんでした。どなたかご指導よろしくお願いします。  ちなみに,HTMLだけで済めば良いのですが,phpでも勉強しますので,よろしくおねがいします。

    • ベストアンサー
    • PHP
  • googleやヤフー検索の検索フォームの単語

    googleやヤフー検索での検索フォームで単語を区切って検索するときに 単語1(全角スペース)単語2 単語1(半角スペース)単語2 の違いはありますか? また半角スペースでも全角スペースであっても 単語1 OR 単語2、 つまり単語1でもよく単語2でもよくって意味になるんでしょうか?まさかANDではないですよね?

  • 検索結果IDの使いまわしについて

    いつもお世話になります。 MySQL+PHPでシステムを構築しております。 PHPのmysql_queryもしくはmysql_db_queryで得た結果IDを使いまわす方法はありませんか? というのも、MySQLへ同じ検索をかける必要がある場合、都度検索するより、一度検索した結果IDを使えれば楽なのですが。。。 実際にやりたい事は、PHPのwhile関数で結果ID分の繰り返し処理を行い、その後、同じ繰り返し処理を行いたいのですが、再度、検索クエリ文をmysql_queryもしくはmysql_db_queryを行わずに利用できる方法があればと考えております。宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • アクセス2003 フォーム検索

    アクセス2003でフォームで、以下の条件で入力し、検索ボタンを押下し、検索したいのですが、超初心者ですので、優しく教えていただけますでしょうか? よろしくお願いいたします。 IDコード(完全一致) 氏名(前方一致)