/**
     * validate the form
     *
     * @param string $formvars the array of submitted for variables
     * @param string $form the name of the form being validated
     */
    function is_valid(&$formvars, $form = SMARTY_VALIDATE_DEFAULT_FORM) {

        static $_is_valid = array();

        if(isset($_is_valid[$form])) {
            // already validated the form
            return $_is_valid[$form];
        }

        $_smarty_obj =& SmartyValidate::_object_instance('Smarty', $_dummy);
        if(!SmartyValidate::is_valid_smarty_object($_smarty_obj)) {
            trigger_error("SmartyValidate: [is_valid] No valid smarty object, call connect() first.");
            return false;
        }

        if(!SmartyValidate::is_registered_form($form)) {
            trigger_error("SmartyValidate: [is_valid] form '$form' is not registered.");
            return false;
        } elseif ($_SESSION['SmartyValidate'][$form]['is_init']) {
            // first run, skip validation
            return false;
        } elseif (count($_SESSION['SmartyValidate'][$form]['validators']) == 0) {
            // nothing to validate
            return true;
        }

        // check for failed fields
        $_failed_fields = SmartyValidate::_failed_fields($formvars, $form);
        $_ret = is_array($_failed_fields) && count($_failed_fields) == 0;

        // set validation state of form
        $_SESSION['SmartyValidate'][$form]['is_error'] = !$_ret;

        $_is_valid[$form] = $_ret;

        return $_ret;
    }
예제 #2
0
 function get_errors(&$formvars, $form = SMARTY_VALIDATE_DEFAULT_FORM)
 {
     $_ret = NULL;
     $_failed_fields = SmartyValidate::_failed_fields($formvars, $form);
     if (!empty($_failed_fields)) {
         foreach ($_failed_fields as $failed) {
             $_ret[$failed] = true;
         }
     }
     return $_ret;
 }