Ignore:
Timestamp:
2010/03/11 10:35:11 (14 years ago)
Author:
kajiwara
Message:

正式版にナイトリービルド版をマージしてみるテスト

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tmp/version-2_5-test/data/class/SC_CheckError.php

    r18562 r18609  
    2828 */ 
    2929class SC_CheckError { 
    30     var $arrErr; 
     30    var $arrErr = array(); 
    3131    var $arrParam; 
    3232 
     
    296296        } 
    297297 
    298         $total_count = 0; 
    299298        for($i = 1; $i <= 3; $i++) { 
    300299            if(strlen($this->arrParam[$value[$i]]) > 0 && strlen($this->arrParam[$value[$i]]) > $value[4]) { 
     
    303302                $this->arrErr[$value[$i]] .= "※ " . $value[0] . $i . "は数字で入力してください。<br />"; 
    304303            } 
    305             $total_count += strlen($this->arrParam[$value[$i]]); 
    306         } 
    307  
    308         // 合計値チェック 
    309         if ($total_count > TEL_LEN) { 
    310             $this->arrErr[$value[3]] .= "※ " . $value[0] . "は" . TEL_LEN . "文字以内で入力してください。<br />"; 
    311304        } 
    312305    } 
     
    501494        $count = strlen($this->arrParam[$value[1]]); 
    502495        if( ( $count > 0 ) && $value[2] > $count || $value[3] < $count ) { 
    503             $this->arrErr[$value[1]] =  "※ $value[0]は$value[2]桁$value[3]桁で入力して下さい。<br />"; 
     496            $this->arrErr[$value[1]] =  "※ $value[0]は$value[2]桁$value[3]桁で入力して下さい。<br />"; 
    504497        } 
    505498    } 
     
    525518        } 
    526519        $this->createParam($value); 
    527         if(strlen($this->arrParam[$value[1]]) > 0 && !ereg("^[^@]+@[^.^@]+\..+", $this->arrParam[$value[1]])) { 
     520 
     521        $wsp           = '[\x20\x09]'; 
     522        $vchar         = '[\x21-\x7e]'; 
     523        $quoted_pair   = "\\\\(?:$vchar|$wsp)"; 
     524        $qtext         = '[\x21\x23-\x5b\x5d-\x7e]'; 
     525        $qcontent      = "(?:$qtext|$quoted_pair)"; 
     526        $quoted_string = "\"$qcontent*\""; 
     527        $atext         = '[a-zA-Z0-9!#$%&\'*+\-\/\=?^_`{|}~]'; 
     528        $dot_atom_text = "$atext+(?:[.]$atext+)*"; 
     529        $dot_atom      = $dot_atom_text; 
     530        $local_part    = "(?:$dot_atom|$quoted_string)"; 
     531        $domain        = $dot_atom; 
     532        $addr_spec     = "${local_part}[@]$domain"; 
     533 
     534        $dot_atom_loose   = "$atext+(?:[.]|$atext)*"; 
     535        $local_part_loose = "(?:$dot_atom_loose|$quoted_string)"; 
     536        $addr_spec_loose  = "${local_part_loose}[@]$domain"; 
     537 
     538        if (RFC_COMPLIANT_EMAIL_CHECK) { 
     539            $regexp = "/\A${addr_spec}\z/"; 
     540        } else { 
     541            // 携帯メールアドレス用に、..や.@を許容する。 
     542            $regexp = "/\A${addr_spec_loose}\z/"; 
     543        } 
     544 
     545        if(strlen($this->arrParam[$value[1]]) > 0 && !preg_match($regexp, $this->arrParam[$value[1]])) { 
    528546            $this->arrErr[$value[1]] = "※ " . $value[0] . "の形式が不正です。<br />"; 
    529547        } 
     
    723741            } 
    724742        } 
     743    } 
     744 
     745    //誕生日チェック 
     746    // value[0] = 項目名 
     747    // value[1] = YYYY 
     748    // value[2] = MM 
     749    // value[3] = DD 
     750    function CHECK_BIRTHDAY($value) { 
     751        if (isset($this->arrErr[$value[1]])) { 
     752            return; 
     753        } 
     754 
     755        $this->createParam($value); 
     756        // 年が入力されている。 
     757        if ($this->arrParam[$value[1]] > 0) { 
     758             
     759            // 年の数字チェック、最小数値制限チェック 
     760            $this->doFunc(array($value[0].'(年)', $value[1], START_BIRTH_YEAR), array("NUM_CHECK", "MIN_CHECK")); 
     761            // 上のチェックでエラーある場合、中断する。 
     762            if (isset($this->arrErr[$value[1]])) { 
     763                return; 
     764            } 
     765             
     766            // 年の最大数値制限チェック 
     767            $this->doFunc(array($value[0].'(年)', $value[1], date("Y",strtotime("now"))), array("MAX_CHECK")); 
     768            // 上のチェックでエラーある場合、中断する。 
     769            if (isset($this->arrErr[$value[1]])) { 
     770                return; 
     771            } 
     772        } 
     773         
     774        // XXX createParam() が二重に呼ばれる問題を抱える 
     775        $this->CHECK_DATE($value); 
    725776    } 
    726777 
Note: See TracChangeset for help on using the changeset viewer.