Ticket #556 (closed バグ指摘: 修正済)
電話番号の桁数チェックが3項目個別に行われていて意味を成していない
Reported by: | kishik | Owned by: | Yammy |
---|---|---|---|
Priority: | 中 | Milestone: | EC-CUBE2.4.3 |
Component: | その他 | Version: | 2.4.1 |
Keywords: | Cc: | ||
修正済み: |
Description
data/class/SC_CheckError.php において、
/* 電話番号の判定 (数字チェックと文字数チェックを実施する。) value[0] : 項目名 value[1] : 電番1項目目 value[2] : 電番2項目目 value[3] : 電番3項目目 value[4] : 文字数制限 */ function TEL_CHECK($value) { if(isset($this->arrErr[$value[1]])) { return; } $this->createParam($value); $cnt = 0; for($i = 1; $i <= 3; $i++) { if(strlen($this->arrParam[$value[$i]]) > 0) { $cnt++; } } // すべての項目が満たされていない場合を判定(一部だけ入力されてい る状態) if($cnt > 0 && $cnt < 3) { $this->arrErr[$value[1]] .= "※ " . $value[0] . "はすべての項 目を入力してください。<br />"; } for($i = 1; $i <= 3; $i++) { if(strlen($this->arrParam[$value[$i]]) > 0 && strlen($this->arrParam[$value[$i]]) > $value[4]) { $this->arrErr[$value[$i]] .= "※ " . $value[0] . $i . "は " . $value[4] . "字以内で入力してください。<br />"; } else if (strlen($this->arrParam[$value[$i]]) > 0 && !EregI("^[[:digit:]]+$", $this->arrParam[$value[$i]])) { $this->arrErr[$value[$i]] .= "※ " . $value[0] . $i . "は 数字で入力してください。<br />"; } } }
3項目それぞれについてチェックはしているが、 3項目を合わせた文字数チェック(11桁)となるべき。
Change History
Note: See
TracTickets for help on using
tickets.
3項目の合計文字数と、定数 TEL_LEN (電話番号総数)を比較するようにする