Ticket #488 (assigned バグ指摘) — at Version 6

Opened 17 years ago

Last modified 13 years ago

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:1 Changed 17 years ago by kajiwara

  • Milestone changed from EC-CUBE2.4.1 to EC-CUBE2.4.2

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

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

comment:4 Changed 16 years ago by nanasess

  • Owner set to nanasess
  • Status changed from new to assigned

comment:5 Changed 16 years ago by nanasess

  • Description modified (diff)

comment:6 Changed 16 years ago by nanasess

  • Description modified (diff)
Note: See TracTickets for help on using tickets.