HEX
Server: Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 mod_fcgid/2.3.9 PHP/5.4.16
System: Linux dvm.vladweb.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: region-gk.ru (1016)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: //home/temp/yarusvl.ru/api/Validate.php
<?php

require_once('Mgc.php');

class Validate extends Mgc {

    private $denied = array(
        "<script", "</script",
        "<iframe", "</iframe",

    );

    /**
     * @param string $email
     * @param bool $is_required
     * if $email is empty AND !$is_required return true
     * @return bool
     */
    public function is_email($email = "", $is_required = false) {
        // general
        if (!$this->is_safe($email)) {
            return false;
        }
        if (empty($email)) {
            return !$is_required ? true : false;
        }
        // for email
        if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/ui", $email)) {
            return false;
        }
        return true;
    }

    /**
     * @param string $phone
     * @param bool $is_required
     * if $phone is empty AND !$is_required return true
     * @return bool
     */
    public function is_phone($phone = "", $is_required = false) {
        // general
        if (!$this->is_safe($phone)) {
            return false;
        }
        if (empty($phone)) {
            return !$is_required ? true : false;
        }
        // for phone
        if (preg_match("~([^0-9 _\+\-\(\)]+)~", $phone)) {
            return false;
        }
        return true;
    }

    /**
     * @param string $name
     * @param bool $is_required
     * if $name is empty AND !$is_required return true
     * @return bool
     */
    public function is_name($name = "", $is_required = false) {
        // general
        if (!$this->is_safe($name)) {
            return false;
        }
        if (empty($name)) {
            return !$is_required ? true : false;
        }
        // for name
        // ...
        return true;
    }

    public function is_address($address = "", $is_required = false) {
        // general
        return $this->is_safe($address, $is_required);
        // ...
        //return true;
    }

    public function is_comment($comment = "", $is_required = false) {
        // general
        return $this->is_safe($comment, $is_required);
        // ...
        //return true;
    }

    /**
     * @param string $src
     * @param bool $is_required
     * if $src is empty AND $is_required return false
     * @return bool
     */
    public function is_safe($src = "", $is_required = false) {
        if (!empty($src)) {
            foreach ($this->denied as $item) {
                if (strpos($src, $item) !== false) {
                    return false;
                }
            }
        } elseif ($is_required) {
            return false;
        }
        return true;
    }

    public function verify_captcha($form, $captcha_code = ''){
        if ($this->settings->$form){
            if ($this->settings->captcha_type == 'default'){
                if ($_SESSION[$form] != $captcha_code || empty($captcha_code)){
                    return false;
                }
                return true;
            } elseif ($this->settings->captcha_type == 'v2' || $this->settings->captcha_type == 'invisible'){
                return $this->recaptcha();
            }
        }
        return true;
    }
}