public function changeEmail($uid, $email, $password, $captcha = null)
    {
        $return['error'] = true;
        $block_status = $this->isBlocked();

        if ($block_status == "verify") {
            if ($this->checkCaptcha($captcha) == false) {
                $return['message'] = $this->__lang("user_verify_failed");

                return $return;
            }
        }

        if ($block_status == "block") {
            $return['message'] = $this->__lang("user_blocked");

            return $return;
        }

        $validateEmail = $this->validateEmail($email);

        if ($validateEmail['error'] == 1) {
            $return['message'] = $validateEmail['message'];

            return $return;
        }

        if ($this->isEmailTaken($email)) {
            $this->addAttempt();
            $return['message'] = $this->__lang("email_taken");

            return $return;
        }

        $validatePassword = $this->validatePassword($password);

        if ($validatePassword['error'] == 1) {
            $return['message'] = $this->__lang("password_notvalid");

            return $return;
        }

        $user = $this->getBaseUser($uid);

        if (!$user) {
            $this->addAttempt();
            $return['message'] = $this->__lang("system_error") . " #14";

            return $return;
        }

        if (!password_verify($password, $user['password'])) {
            $this->addAttempt();
            $return['message'] = $this->__lang("password_incorrect");

            return $return;
        }

        if ($email == $user['email']) {
            $this->addAttempt();
            $return['message'] = $this->__lang("newemail_match");

            return $return;
        }

        $query = "UPDATE {$this->config->table_users} SET email = ? WHERE id = ?";
        $query_prepared = $this->dbh->prepare($query);
        $query_prepared->execute([$email, $uid]);

        if ($query_prepared->rowCount() == 0) {
            $return['message'] = $this->__lang("system_error") . " #15";

            return $return;
        }

        $return['error'] = false;
        $return['message'] = $this->__lang("email_changed");

        return $return;
    }
public function changeEmail($uid, $email, $password, $captcha = null)
    {
        $return['error'] = true;
        $block_status = $this->isBlocked();

        if ($block_status == "verify") {
            if ($this->checkCaptcha($captcha) == false) {
                $return['message'] = $this->__lang("user_verify_failed");

                return $return;
            }
        }

        if ($block_status == "block") {
            $return['message'] = $this->__lang("user_blocked");

            return $return;
        }

        $validateEmail = $this->validateEmail($email);

        if ($validateEmail['error'] == 1) {
            $return['message'] = $validateEmail['message'];

            return $return;
        }

        if ($this->isEmailTaken($email)) {
            $this->addAttempt();
            $return['message'] = $this->__lang("email_taken");

            return $return;
        }

        $validatePassword = $this->validatePassword($password);

        if ($validatePassword['error'] == 1) {
            $return['message'] = $this->__lang("password_notvalid");

            return $return;
        }

        $user = $this->getBaseUser($uid);

        if (!$user) {
            $this->addAttempt();
            $return['message'] = $this->__lang("system_error") . " #14";

            return $return;
        }

        if (!password_verify($password, $user['password'])) {
            $this->addAttempt();
            $return['message'] = $this->__lang("password_incorrect");

            return $return;
        }

        if ($email == $user['email']) {
            $this->addAttempt();
            $return['message'] = $this->__lang("newemail_match");

            return $return;
        }

        $query = "UPDATE {$this->config->table_users} SET email = ? WHERE id = ?";
        $query_prepared = $this->dbh->prepare($query);
        $query_prepared->execute([$email, $uid]);

        if ($query_prepared->rowCount() == 0) {
            $return['message'] = $this->__lang("system_error") . " #15";

            return $return;
        }

        $return['error'] = false;
        $return['message'] = $this->__lang("email_changed");

        return $return;
    }
public function changeEmail ( $ uid , $ email , $ password , $ captcha = null ) { $ return [ 'error' ] = true ; $ block_status = $ this -> isBlocked ( ) ; if ( $ block_status == "verify" ) { if ( $ this -> checkCaptcha ( $ captcha ) == false ) { $ return [ 'message' ] = $ this -> __lang ( "user_verify_failed" ) ; return $ return ; } } if ( $ block_status == "block" ) { $ return [ 'message' ] = $ this -> __lang ( "user_blocked" ) ; return $ return ; } $ validateEmail = $ this -> validateEmail ( $ email ) ; if ( $ validateEmail [ 'error' ] == 1 ) { $ return [ 'message' ] = $ validateEmail [ 'message' ] ; return $ return ; } if ( $ this -> isEmailTaken ( $ email ) ) { $ this -> addAttempt ( ) ; $ return [ 'message' ] = $ this -> __lang ( "email_taken" ) ; return $ return ; } $ validatePassword = $ this -> validatePassword ( $ password ) ; if ( $ validatePassword [ 'error' ] == 1 ) { $ return [ 'message' ] = $ this -> __lang ( "password_notvalid" ) ; return $ return ; } $ user = $ this -> getBaseUser ( $ uid ) ; if ( ! $ user ) { $ this -> addAttempt ( ) ; $ return [ 'message' ] = $ this -> __lang ( "system_error" ) . " #14" ; return $ return ; } if ( ! password_verify ( $ password , $ user [ 'password' ] ) ) { $ this -> addAttempt ( ) ; $ return [ 'message' ] = $ this -> __lang ( "password_incorrect" ) ; return $ return ; } if ( $ email == $ user [ 'email' ] ) { $ this -> addAttempt ( ) ; $ return [ 'message' ] = $ this -> __lang ( "newemail_match" ) ; return $ return ; } $ query = "UPDATE {$this->config->table_users} SET email = ? WHERE id = ?" ; $ query_prepared = $ this -> dbh -> prepare ( $ query ) ; $ query_prepared -> execute ( [ $ email , $ uid ] ) ; if ( $ query_prepared -> rowCount ( ) == 0 ) { $ return [ 'message' ] = $ this -> __lang ( "system_error" ) . " #15" ; return $ return ; } $ return [ 'error' ] = false ; $ return [ 'message' ] = $ this -> __lang ( "email_changed" ) ; return $ return ; }
Changes a user's email
@param int $uid
@param string $email
@param string $password
@param string $captcha = null
@return array $return
Changes a user s email