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 (電話番号総数)を比較するようにする