Ticket #488 (assigned バグ指摘) — at Version 6
POSTされる値とDBの文字コードが一致しない場合、DBエラーとなる
| Reported by: | kishida | Owned by: | nanasess |
|---|---|---|---|
| Priority: | 低 | Milestone: | EC-CUBE2.11.0 |
| Component: | フロント | Version: | 2.4.0 |
| Keywords: | Cc: | Seasoft | |
| 修正済み: | yes |
Description (last modified by nanasess) (diff)
POSTする時にブラウザの文字コードを、 ECCUBEで指定した文字コード以外を設定しPOSTした場合、 文字コードのチェックを行っていない為、 DBで下記のようなエラーが起こる場合がある。 (※POSTされる値によってエラーとなる場合がある)
[nativecode=ERROR: invalid byte sequence for encoding "EUC_JP": 0x8250 HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".]
解決策
// 検索語がUTF-8じゃなかったら、強制的にUTF-8にする
$encode = mb_detect_encoding($_POST['name']);
if( CHAR_CODE != $encode ){
$name = mb_convert_encoding($_POST['name'], "UTF-8", "auto");
}
Change History
comment:2 Changed 16 years ago by kajiwara
- Owner changed from somebody to kajiwara
- Status changed from new to assigned
comment:3 Changed 16 years ago by kajiwara
- Owner kajiwara deleted
- Status changed from assigned to new
Note: See
TracTickets for help on using
tickets.

影響範囲と修正点が少し曖昧であるため、一旦マイルストーンを2.4.2に変更し、
引き続きの対応とさせていただきたいと思います。