protected function validate()
    {
        if (!is_string($this->code) || strlen($this->code) == 0) {
            $code = $this->getCode(true);
            // returns stored code, or an empty string if no stored code was found
            // checks the session and database if enabled
        } else {
            $code = $this->code;
        }

        if (is_array($code)) {
            if (!empty($code)) {
                $ctime = $code['time'];
                $code  = $code['code'];

                $this->_timeToSolve = time() - $ctime;
            } else {
                $code = '';
            }
        }

        if ($this->case_sensitive == false && preg_match('/[A-Z]/', $code)) {
            // case sensitive was set from securimage_show.php but not in class
            // the code saved in the session has capitals so set case sensitive to true
            $this->case_sensitive = true;
        }

        $code_entered = trim( (($this->case_sensitive) ? $this->code_entered
                                                       : strtolower($this->code_entered))
                        );
        $this->correct_code = false;

        if ($code != '') {
            if (strpos($code, ' ') !== false) {
                // for multi word captchas, remove more than once space from input
                $code_entered = preg_replace('/\s+/', ' ', $code_entered);
                $code_entered = strtolower($code_entered);
            }

            if ((string)$code === (string)$code_entered) {
                $this->correct_code = true;
                if ($this->no_session != true) {
                    $_SESSION['securimage_code_disp'] [$this->namespace] = '';
                    $_SESSION['securimage_code_value'][$this->namespace] = '';
                    $_SESSION['securimage_code_ctime'][$this->namespace] = '';
                    $_SESSION['securimage_code_audio'][$this->namespace] = '';
                }
                $this->clearCodeFromDatabase();
            }
        }
    }
protected function validate()
    {
        if (!is_string($this->code) || strlen($this->code) == 0) {
            $code = $this->getCode(true);
            // returns stored code, or an empty string if no stored code was found
            // checks the session and database if enabled
        } else {
            $code = $this->code;
        }

        if (is_array($code)) {
            if (!empty($code)) {
                $ctime = $code['time'];
                $code  = $code['code'];

                $this->_timeToSolve = time() - $ctime;
            } else {
                $code = '';
            }
        }

        if ($this->case_sensitive == false && preg_match('/[A-Z]/', $code)) {
            // case sensitive was set from securimage_show.php but not in class
            // the code saved in the session has capitals so set case sensitive to true
            $this->case_sensitive = true;
        }

        $code_entered = trim( (($this->case_sensitive) ? $this->code_entered
                                                       : strtolower($this->code_entered))
                        );
        $this->correct_code = false;

        if ($code != '') {
            if (strpos($code, ' ') !== false) {
                // for multi word captchas, remove more than once space from input
                $code_entered = preg_replace('/\s+/', ' ', $code_entered);
                $code_entered = strtolower($code_entered);
            }

            if ((string)$code === (string)$code_entered) {
                $this->correct_code = true;
                if ($this->no_session != true) {
                    $_SESSION['securimage_code_disp'] [$this->namespace] = '';
                    $_SESSION['securimage_code_value'][$this->namespace] = '';
                    $_SESSION['securimage_code_ctime'][$this->namespace] = '';
                    $_SESSION['securimage_code_audio'][$this->namespace] = '';
                }
                $this->clearCodeFromDatabase();
            }
        }
    }
protected function validate ( ) { if ( ! is_string ( $ this -> code ) || strlen ( $ this -> code ) == 0 ) { $ code = $ this -> getCode ( true ) ; // returns stored code, or an empty string if no stored code was found // checks the session and database if enabled } else { $ code = $ this -> code ; } if ( is_array ( $ code ) ) { if ( ! empty ( $ code ) ) { $ ctime = $ code [ 'time' ] ; $ code = $ code [ 'code' ] ; $ this -> _timeToSolve = time ( ) - $ ctime ; } else { $ code = '' ; } } if ( $ this -> case_sensitive == false && preg_match ( '/[A-Z]/' , $ code ) ) { // case sensitive was set from securimage_show.php but not in class // the code saved in the session has capitals so set case sensitive to true $ this -> case_sensitive = true ; } $ code_entered = trim ( ( ( $ this -> case_sensitive ) ? $ this -> code_entered : strtolower ( $ this -> code_entered ) ) ) ; $ this -> correct_code = false ; if ( $ code != '' ) { if ( strpos ( $ code , ' ' ) !== false ) { // for multi word captchas, remove more than once space from input $ code_entered = preg_replace ( '/\s+/' , ' ' , $ code_entered ) ; $ code_entered = strtolower ( $ code_entered ) ; } if ( ( string ) $ code === ( string ) $ code_entered ) { $ this -> correct_code = true ; if ( $ this -> no_session != true ) { $ _SESSION [ 'securimage_code_disp' ] [ $ this -> namespace ] = '' ; $ _SESSION [ 'securimage_code_value' ] [ $ this -> namespace ] = '' ; $ _SESSION [ 'securimage_code_ctime' ] [ $ this -> namespace ] = '' ; $ _SESSION [ 'securimage_code_audio' ] [ $ this -> namespace ] = '' ; } $ this -> clearCodeFromDatabase ( ) ; } } }
Validate a code supplied by the user

Checks the entered code against the value stored in the session and/or database (if configured).  Handles case sensitivity.
Also removes the code from session/database if the code was entered correctly to prevent re-use attack.

This function does not return a value.

@see Securimage::$correct_code 'correct_code' property
Validate a code supplied by the user