!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/billing/system/libraries/   drwxr-xr-x
Free 13.2 GB of 57.97 GB (22.78%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Validation.php (17.54 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 4.3.2 or newer
 *
 * @package        CodeIgniter
 * @author        ExpressionEngine Dev Team
 * @copyright    Copyright (c) 2008 - 2010, EllisLab, Inc.
 * @license        http://codeigniter.com/user_guide/license.html
 * @link        http://codeigniter.com
 * @since        Version 1.0
 * @filesource
 */

// ------------------------------------------------------------------------

/**
 * Validation Class
 *
 * @package        CodeIgniter
 * @subpackage    Libraries
 * @category    Validation
 * @author        ExpressionEngine Dev Team
 * @link        http://codeigniter.com/user_guide/libraries/validation.html
 */
class CI_Validation {
    
    var 
$CI;
    var 
$error_string        '';
    var 
$_error_array        = array();
    var 
$_rules                = array();
    var 
$_fields            = array();
    var 
$_error_messages    = array();
    var 
$_current_field      '';
    var 
$_safe_form_data     FALSE;
    var 
$_error_prefix        '<p>';
    var 
$_error_suffix        '</p>';

    

    
/**
     * Constructor
     *
     */    
    
function CI_Validation()
    {    
        
$this->CI =& get_instance();
        
        if (
function_exists('mb_internal_encoding'))
        {
            
mb_internal_encoding($this->CI->config->item('charset'));
        }
        
        
log_message('debug'"Validation Class Initialized");
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Set Fields
     *
     * This function takes an array of field names as input
     * and generates class variables with the same name, which will
     * either be blank or contain the $_POST value corresponding to it
     *
     * @access    public
     * @param    string
     * @param    string
     * @return    void
     */
    
function set_fields($data ''$field '')
    {    
        if (
$data == '')
        {
            if (
count($this->_fields) == 0)
            {
                return 
FALSE;
            }
        }
        else
        {
            if ( ! 
is_array($data))
            {
                
$data = array($data => $field);
            }
            
            if (
count($data) > 0)
            {
                
$this->_fields $data;
            }
        }        
            
        foreach(
$this->_fields as $key => $val)
        {
            
$this->$key = ( ! isset($_POST[$key])) ? '' $this->prep_for_form($_POST[$key]);
            
            
$error $key.'_error';
            if ( ! isset(
$this->$error))
            {
                
$this->$error '';
            }
        }        
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Set Rules
     *
     * This function takes an array of field names and validation
     * rules as input ad simply stores is for use later.
     *
     * @access    public
     * @param    mixed
     * @param    string
     * @return    void
     */
    
function set_rules($data$rules '')
    {
        if ( ! 
is_array($data))
        {
            if (
$rules == '')
                return;
                
            
$data = array($data => $rules);
        }
    
        foreach (
$data as $key => $val)
        {
            
$this->_rules[$key] = $val;
        }
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Set Error Message
     *
     * Lets users set their own error messages on the fly.  Note:  The key
     * name has to match the  function name that it corresponds to.
     *
     * @access    public
     * @param    string
     * @param    string
     * @return    string
     */
    
function set_message($lang$val '')
    {
        if ( ! 
is_array($lang))
        {
            
$lang = array($lang => $val);
        }
    
        
$this->_error_messages array_merge($this->_error_messages$lang);
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Set The Error Delimiter
     *
     * Permits a prefix/suffix to be added to each error message
     *
     * @access    public
     * @param    string
     * @param    string
     * @return    void
     */    
    
function set_error_delimiters($prefix '<p>'$suffix '</p>')
    {
        
$this->_error_prefix $prefix;
        
$this->_error_suffix $suffix;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Run the Validator
     *
     * This function does all the work.
     *
     * @access    public
     * @return    bool
     */        
    
function run()
    {
        
// Do we even have any data to process?  Mm?
        
if (count($_POST) == OR count($this->_rules) == 0)
        {
            return 
FALSE;
        }
    
        
// Load the language file containing error messages
        
$this->CI->lang->load('validation');
                            
        
// Cycle through the rules and test for errors
        
foreach ($this->_rules as $field => $rules)
        {
            
//Explode out the rules!
            
$ex explode('|'$rules);

            
// Is the field required?  If not, if the field is blank  we'll move on to the next test
            
if ( ! in_array('required'$exTRUE))
            {
                if ( ! isset(
$_POST[$field]) OR $_POST[$field] == '')
                {
                    continue;
                }
            }
            
            
/*
             * Are we dealing with an "isset" rule?
             *
             * Before going further, we'll see if one of the rules
             * is to check whether the item is set (typically this
             * applies only to checkboxes).  If so, we'll
             * test for it here since there's not reason to go
             * further
             */
            
if ( ! isset($_POST[$field]))
            {            
                if (
in_array('isset'$exTRUE) OR in_array('required'$ex))
                {
                    if ( ! isset(
$this->_error_messages['isset']))
                    {
                        if (
FALSE === ($line $this->CI->lang->line('isset')))
                        {
                            
$line 'The field was not set';
                        }                            
                    }
                    else
                    {
                        
$line $this->_error_messages['isset'];
                    }
                    
                    
// Build the error message
                    
$mfield = ( ! isset($this->_fields[$field])) ? $field $this->_fields[$field];
                    
$message sprintf($line$mfield);

                    
// Set the error variable.  Example: $this->username_error
                    
$error $field.'_error';
                    
$this->$error $this->_error_prefix.$message.$this->_error_suffix;
                    
$this->_error_array[] = $message;
                }
                        
                continue;
            }
    
            
/*
             * Set the current field
             *
             * The various prepping functions need to know the
             * current field name so they can do this:
             *
             * $_POST[$this->_current_field] == 'bla bla';
             */
            
$this->_current_field $field;

            
// Cycle through the rules!
            
foreach ($ex As $rule)
            {
                
// Is the rule a callback?            
                
$callback FALSE;
                if (
substr($rule09) == 'callback_')
                {
                    
$rule substr($rule9);
                    
$callback TRUE;
                }
                
                
// Strip the parameter (if exists) from the rule
                // Rules can contain a parameter: max_length[5]
                
$param FALSE;
                if (
preg_match("/(.*?)\[(.*?)\]/"$rule$match))
                {
                    
$rule    $match[1];
                    
$param    $match[2];
                }
                
                
// Call the function that corresponds to the rule
                
if ($callback === TRUE)
                {
                    if ( ! 
method_exists($this->CI$rule))
                    {         
                        continue;
                    }
                    
                    
$result $this->CI->$rule($_POST[$field], $param);    
                    
                    
// If the field isn't required and we just processed a callback we'll move on...
                    
if ( ! in_array('required'$exTRUE) AND $result !== FALSE)
                    {
                        continue 
2;
                    }
                    
                }
                else
                {                
                    if ( ! 
method_exists($this$rule))
                    {
                        
/*
                         * Run the native PHP function if called for
                         *
                         * If our own wrapper function doesn't exist we see
                         * if a native PHP function does. Users can use
                         * any native PHP function call that has one param.
                         */
                        
if (function_exists($rule))
                        {
                            
$_POST[$field] = $rule($_POST[$field]);
                            
$this->$field $_POST[$field];
                        }
                                            
                        continue;
                    }
                    
                    
$result $this->$rule($_POST[$field], $param);
                }
                                
                
// Did the rule test negatively?  If so, grab the error.
                
if ($result === FALSE)
                {
                    if ( ! isset(
$this->_error_messages[$rule]))
                    {
                        if (
FALSE === ($line $this->CI->lang->line($rule)))
                        {
                            
$line 'Unable to access an error message corresponding to your field name.';
                        }                        
                    }
                    else
                    {
                        
$line $this->_error_messages[$rule];
                    }                

                    
// Build the error message
                    
$mfield = ( ! isset($this->_fields[$field])) ? $field $this->_fields[$field];
                    
$mparam = ( ! isset($this->_fields[$param])) ? $param $this->_fields[$param];
                    
$message sprintf($line$mfield$mparam);
                    
                    
// Set the error variable.  Example: $this->username_error
                    
$error $field.'_error';
                    
$this->$error $this->_error_prefix.$message.$this->_error_suffix;

                    
// Add the error to the error array
                    
$this->_error_array[] = $message;                
                    continue 
2;
                }                
            }
            
        }
        
        
$total_errors count($this->_error_array);

        
/*
         * Recompile the class variables
         *
         * If any prepping functions were called the $_POST data
         * might now be different then the corresponding class
         * variables so we'll set them anew.
         */    
        
if ($total_errors 0)
        {
            
$this->_safe_form_data TRUE;
        }
        
        
$this->set_fields();

        
// Did we end up with any errors?
        
if ($total_errors == 0)
        {
            return 
TRUE;
        }
        
        
// Generate the error string
        
foreach ($this->_error_array as $val)
        {
            
$this->error_string .= $this->_error_prefix.$val.$this->_error_suffix."\n";
        }

        return 
FALSE;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Required
     *
     * @access    public
     * @param    string
     * @return    bool
     */
    
function required($str)
    {
        if ( ! 
is_array($str))
        {
            return (
trim($str) == '') ? FALSE TRUE;
        }
        else
        {
            return ( ! empty(
$str));
        }
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Match one field to another
     *
     * @access    public
     * @param    string
     * @param    field
     * @return    bool
     */
    
function matches($str$field)
    {
        if ( ! isset(
$_POST[$field]))
        {
            return 
FALSE;
        }
        
        return (
$str !== $_POST[$field]) ? FALSE TRUE;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Minimum Length
     *
     * @access    public
     * @param    string
     * @param    value
     * @return    bool
     */    
    
function min_length($str$val)
    {
        if (
preg_match("/[^0-9]/"$val))
        {
            return 
FALSE;
        }

        if (
function_exists('mb_strlen'))
        {
            return (
mb_strlen($str) < $val) ? FALSE TRUE;        
        }

        return (
strlen($str) < $val) ? FALSE TRUE;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Max Length
     *
     * @access    public
     * @param    string
     * @param    value
     * @return    bool
     */    
    
function max_length($str$val)
    {
        if (
preg_match("/[^0-9]/"$val))
        {
            return 
FALSE;
        }
        
        if (
function_exists('mb_strlen'))
        {
            return (
mb_strlen($str) > $val) ? FALSE TRUE;        
        }

        return (
strlen($str) > $val) ? FALSE TRUE;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Exact Length
     *
     * @access    public
     * @param    string
     * @param    value
     * @return    bool
     */    
    
function exact_length($str$val)
    {
        if (
preg_match("/[^0-9]/"$val))
        {
            return 
FALSE;
        }
    
        if (
function_exists('mb_strlen'))
        {
            return (
mb_strlen($str) != $val) ? FALSE TRUE;        
        }

        return (
strlen($str) != $val) ? FALSE TRUE;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Valid Email
     *
     * @access    public
     * @param    string
     * @return    bool
     */    
    
function valid_email($str)
    {
        return ( ! 
preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix"$str)) ? FALSE TRUE;
    }

    
// --------------------------------------------------------------------
    
    /**
     * Valid Emails
     *
     * @access    public
     * @param    string
     * @return    bool
     */    
    
function valid_emails($str)
    {
        if (
strpos($str',') === FALSE)
        {
            return 
$this->valid_email(trim($str));
        }
        
        foreach(
explode(','$str) as $email)
        {
            if (
trim($email) != '' && $this->valid_email(trim($email)) === FALSE)
            {
                return 
FALSE;
            }
        }
        
        return 
TRUE;
    }

    
// --------------------------------------------------------------------
    
    /**
     * Validate IP Address
     *
     * @access    public
     * @param    string
     * @return    string
     */
    
function valid_ip($ip)
    {
        return 
$this->CI->input->valid_ip($ip);
    }

    
// --------------------------------------------------------------------
    
    /**
     * Alpha
     *
     * @access    public
     * @param    string
     * @return    bool
     */        
    
function alpha($str)
    {
        return ( ! 
preg_match("/^([a-z])+$/i"$str)) ? FALSE TRUE;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Alpha-numeric
     *
     * @access    public
     * @param    string
     * @return    bool
     */    
    
function alpha_numeric($str)
    {
        return ( ! 
preg_match("/^([a-z0-9])+$/i"$str)) ? FALSE TRUE;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Alpha-numeric with underscores and dashes
     *
     * @access    public
     * @param    string
     * @return    bool
     */    
    
function alpha_dash($str)
    {
        return ( ! 
preg_match("/^([-a-z0-9_-])+$/i"$str)) ? FALSE TRUE;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Numeric
     *
     * @access    public
     * @param    string
     * @return    bool
     */    
    
function numeric($str)
    {
        return (bool)
preg_match'/^[\-+]?[0-9]*\.?[0-9]+$/'$str);

    }

    
// --------------------------------------------------------------------

    /**
     * Is Numeric
     *
     * @access    public
     * @param    string
     * @return    bool
     */
      
function is_numeric($str)
    {
        return ( ! 
is_numeric($str)) ? FALSE TRUE;
    } 

    
// --------------------------------------------------------------------
    
    /**
     * Integer
     *
     * @access    public
     * @param    string
     * @return    bool
     */    
    
function integer($str)
    {
        return (bool)
preg_match'/^[\-+]?[0-9]+$/'$str);
    }

    
// --------------------------------------------------------------------

    /**
     * Is a Natural number  (0,1,2,3, etc.)
     *
     * @access    public
     * @param    string
     * @return    bool
     */
    
function is_natural($str)
    {   
           return (bool)
preg_match'/^[0-9]+$/'$str);
    }

    
// --------------------------------------------------------------------

    /**
     * Is a Natural number, but not a zero  (1,2,3, etc.)
     *
     * @access    public
     * @param    string
     * @return    bool
     */
    
function is_natural_no_zero($str)
    {   
        if ( ! 
preg_match'/^[0-9]+$/'$str))
        {
            return 
FALSE;
        }
    
        if (
$str == 0)
        {
            return 
FALSE;
        }

        return 
TRUE;
    }

    
// --------------------------------------------------------------------
    
    /**
     * Valid Base64
     *
     * Tests a string for characters outside of the Base64 alphabet
     * as defined by RFC 2045 http://www.faqs.org/rfcs/rfc2045
     *
     * @access    public
     * @param    string
     * @return    bool
     */
    
function valid_base64($str)
    {
        return (bool) ! 
preg_match('/[^a-zA-Z0-9\/\+=]/'$str);
    }

    
// --------------------------------------------------------------------
    
    /**
     * Set Select
     *
     * Enables pull-down lists to be set to the value the user
     * selected in the event of an error
     *
     * @access    public
     * @param    string
     * @param    string
     * @return    string
     */    
    
function set_select($field ''$value '')
    {
        if (
$field == '' OR $value == '' OR  ! isset($_POST[$field]))
        {
            return 
'';
        }
            
        if (
$_POST[$field] == $value)
        {
            return 
' selected="selected"';
        }
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Set Radio
     *
     * Enables radio buttons to be set to the value the user
     * selected in the event of an error
     *
     * @access    public
     * @param    string
     * @param    string
     * @return    string
     */    
    
function set_radio($field ''$value '')
    {
        if (
$field == '' OR $value == '' OR  ! isset($_POST[$field]))
        {
            return 
'';
        }
            
        if (
$_POST[$field] == $value)
        {
            return 
' checked="checked"';
        }
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Set Checkbox
     *
     * Enables checkboxes to be set to the value the user
     * selected in the event of an error
     *
     * @access    public
     * @param    string
     * @param    string
     * @return    string
     */    
    
function set_checkbox($field ''$value '')
    {
        if (
$field == '' OR $value == '' OR  ! isset($_POST[$field]))
        {
            return 
'';
        }
            
        if (
$_POST[$field] == $value)
        {
            return 
' checked="checked"';
        }
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Prep data for form
     *
     * This function allows HTML to be safely shown in a form.
     * Special characters are converted.
     *
     * @access    public
     * @param    string
     * @return    string
     */
    
function prep_for_form($data '')
    {
        if (
is_array($data))
        {
            foreach (
$data as $key => $val)
            {
                
$data[$key] = $this->prep_for_form($val);
            }
            
            return 
$data;
        }
        
        if (
$this->_safe_form_data == FALSE OR $data == '')
        {
            return 
$data;
        }

        return 
str_replace(array("'"'"''<''>'), array("&#39;""&quot;"'&lt;''&gt;'), stripslashes($data));
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Prep URL
     *
     * @access    public
     * @param    string
     * @return    string
     */    
    
function prep_url($str '')
    {
        if (
$str == 'http://' OR $str == '')
        {
            
$_POST[$this->_current_field] = '';
            return;
        }
        
        if (
substr($str07) != 'http://' && substr($str08) != 'https://')
        {
            
$str 'http://'.$str;
        }
        
        
$_POST[$this->_current_field] = $str;
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Strip Image Tags
     *
     * @access    public
     * @param    string
     * @return    string
     */    
    
function strip_image_tags($str)
    {
        
$_POST[$this->_current_field] = $this->CI->input->strip_image_tags($str);
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * XSS Clean
     *
     * @access    public
     * @param    string
     * @return    string
     */    
    
function xss_clean($str)
    {
        
$_POST[$this->_current_field] = $this->CI->input->xss_clean($str);
    }
    
    
// --------------------------------------------------------------------
    
    /**
     * Convert PHP tags to entities
     *
     * @access    public
     * @param    string
     * @return    string
     */    
    
function encode_php_tags($str)
    {
        
$_POST[$this->_current_field] = str_replace(array('<?php''<?PHP''<?''?>'),  array('&lt;?php''&lt;?PHP''&lt;?''?&gt;'), $str);
    }

}
// END Validation Class

/* End of file Validation.php */
/* Location: ./system/libraries/Validation.php */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0071 ]--