From tks-9 @ authenticblue.com Wed Jan 14 17:15:53 2004 From: tks-9 @ authenticblue.com (Takeshi Ogue) Date: Wed, 14 Jan 2004 17:15:53 +0900 Subject: [Tep-j-develop] =?iso-2022-jp?b?GyRCOFw1UjRJTX0hJzghOnckSyREGyhC?= =?iso-2022-jp?b?GyRCJCQkRhsoQg==?= Message-ID: <20040114171211.BD2E.TKS-9@authenticblue.com> こんにちは、小久江です。 不具合の報告です。 /admin/customers.php で、顧客名で検索した場合に検索がうまくいかないとい う不具合がありました。検索結果が複数ある場合、2行目以降の顧客をクリック しても正しい顧客が選択されず、別の検索結果を表示してしまう場合があります。 これはマルチバイトのPOST結果をurlencode無しにリンク中に埋め込んでしまう 為で、以下に解決方法を記しておきます。 484行目171桁以降(長くなるので一部だけ) tep_href_link(FILENAME_CUSTOMERS,tep_get_all_get_params(array('cID','action')) . 'cID=' . $cInfo->customers_id . '&action=edit') . '\'">' . "\n"; これを以下のように変更します tep_get_all_get_params(array('cID','action','search')) . 'cID=' . $cInfo->customers_id . '&action=edit&search=' . rawurlencode($HTTP_GET_VARS['search'])) . '\'">' . "\n"; サーチキーワードをtep_get_all_get_paramsの引数に入れて除外し、自前で urlencodeした$HTTP_GET_VARS['search']を付け加えます。 他に同ファイル内の492行目、552行目、525行目、531行目がこれに該当すると思われます。 ソースの行数はosCommerce 2.2 日本語版(2002-12-30)の中のファイルです。 -- Takeshi Ogue From tamura @ bitscope.co.jp Wed Jan 21 17:03:45 2004 From: tamura @ bitscope.co.jp (TAMURA Toshihiko) Date: Wed, 21 Jan 2004 17:03:45 +0900 Subject: [Tep-j-develop] =?iso-2022-jp?b?UmU6IBskQjhcNVI0SU19ISc4ITp3GyhC?= =?iso-2022-jp?b?GyRCJEskRCQkJEYbKEI=?= In-Reply-To: <20040114171211.BD2E.TKS-9@authenticblue.com> References: <20040114171211.BD2E.TKS-9@authenticblue.com> Message-ID: <20040121164930.07AE.TAMURA@bitscope.co.jp> 小久江さん、こんにちは。 田村です。 > /admin/customers.php で、顧客名で検索した場合に検索がうまくいかないとい > う不具合がありました。検索結果が複数ある場合、2行目以降の顧客をクリック > しても正しい顧客が選択されず、別の検索結果を表示してしまう場合があります。 osCommerce 2.2 日本語版(2002-12-30)での現象ですね。 確認してみると、 MS1Jでは tep_get_all_get_params() の中でurlencodeをしているので、 同じ現象は起きないと思います。 ただ、'表'などを入力して検索すると、 手元の環境では文字コードの自動判別に失敗して、 まともに検索できないのに気がつきました。 # この部分のFORMはGETで受け渡してるんですね。 対策として、hiddenに適当な2バイト文字を埋め込めば直るようです。 CVSにコミットしましたので、何か問題を発見した方は教えてください。 http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/tep-j/oscommerce-2.2ms1j/admin/customers.php -- 田村敏彦 / 株式会社ビットスコープ E-mail:tamura @ bitscope.co.jp http://www.bitscope.co.jp/ From tks-9 @ authenticblue.com Wed Jan 21 17:45:58 2004 From: tks-9 @ authenticblue.com (Takeshi Ogue) Date: Wed, 21 Jan 2004 17:45:58 +0900 Subject: [Tep-j-develop] =?iso-2022-jp?b?UmU6IBskQjhcNVI0SU19ISc4ITp3GyhC?= =?iso-2022-jp?b?GyRCJEskRCQkJEYbKEI=?= In-Reply-To: <20040121164930.07AE.TAMURA@bitscope.co.jp> References: <20040114171211.BD2E.TKS-9@authenticblue.com> <20040121164930.07AE.TAMURA@bitscope.co.jp> Message-ID: <20040121172809.D6DA.TKS-9@authenticblue.com> 田村さん、こんにちは。 > 確認してみると、 > MS1Jでは tep_get_all_get_params() の中でurlencodeをしているので、 > 同じ現象は起きないと思います。 なるほど。こっちの方が楽ですね。 > ただ、'表'などを入力して検索すると、 > 手元の環境では文字コードの自動判別に失敗して、 > まともに検索できないのに気がつきました。 はい。うちのショップではphp.iniのdefault_charsetにeuc-jpを設定しているた めに問題はないのですが、そうでない環境ではたまにhttp-equivのcharset指定 が無視されてしまう場合があります。 > 対策として、hiddenに適当な2バイト文字を埋め込めば直るようです。 現象が見られた環境では対策として「◎」を埋め込んでおきましたが、他にも 「京」「美」などの第2バイトに0xfdもしくは0xfeが含まれている文字を指定し ておくとよさそうです。ソースを見てみるとYahoo!Japanが「京」の字を使って ますね。 -- Takeshi Ogue