!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/proyectos/toba_editor/php/datos/dimensiones/   drwxr-xr-x
Free 14.75 GB of 61.93 GB (23.81%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     ci_prueba.php (5.92 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php 

class ci_prueba extends toba_ci
{
    protected 
$fuente;
    protected 
$proyecto;
    protected 
$s__sqls_elegidos = array();
    protected 
$s__sqls_a_ejecutar = array();
    protected 
$s__detalle_test = array();
    protected 
$cabecera_prueba '';
    protected 
$pruebas = array();    
    
    function 
ini()
    {        
        
$this->proyecto toba_editor::get_proyecto_cargado();                //Obtengo el proyecto cargado en el editor
        
if ($editable toba::zona()->get_editable()) {
            
$this->fuente $editable[1];                                //La fuente a  editar viene por la zona
            
if (! $this->dep('datos')->esta_cargada()) {
                
$this->dep('datos')->cargar(array('fuente_datos'=>$this->fuente'proyecto' => $this->proyecto));
                
$datos $this->dep('datos')->get();
                
// Si no hay lote, saco la pantalla de la prueba
                
if (trim($datos['lote']) == '') {
                    
$this->set_pantalla('sql');                                //Redireccion temprana a la pantalla correcta
                    
$this->pantalla()->eliminar_tab('test');
                }                
                
// Seteo elegidos
                
if (isset($datos['seleccionados']) && ($datos['seleccionados'] != '')) {
                    
$this->s__sqls_elegidos explode(','$datos['seleccionados']);                    
                }
                
// Seteo los parametros del TEST
                
if (isset($datos['parametros']) && ($datos['parametros'] != '')) {
                    
$this->s__detalle_test unserialize($datos['parametros']);                    
                }
            }
        } else {
            throw new 
toba_error('ERROR: Esta operacion debe ser llamada desde la zona de fuentes');
        }    
    }

    function 
evt__guardar()
    {
        
$this->dep('datos')->sincronizar();
    }
    
    function 
evt__ejecutar()
    {
        if (isset(
$this->s__sqls_elegidos)) {
            
$this->grabar_info_test();
            
$this->ejecutar_test();
            
$this->dep('form_elegir_sql')->colapsar();
            
$this->dep('form_test')->colapsar();
        }
    }

    
//---------------------------  Configuracion de la pantalla de testeo
    
function conf__test($pantalla)
    {
        if (
count($this->get_perfiles_datos()) == 0) {
            
$pantalla->eliminar_dep('form_elegir_sql');
            
$pantalla->eliminar_dep('form_test');
            
$pantalla->eliminar_evento('ejecutar');
            
$pantalla->set_descripcion('No hay perfiles de datos definidos para el proyecto. Utilice el proyecto toba_usuarios para crearlos.');
        }    
    }
    
    
//-- Elegir SQLs a probar --------------------------------------------
    
function evt__form_elegir_sql__modificacion($datos)
    {
        unset(
$this->s__sqls_elegidos);
        unset(
$this->s__sqls_a_ejecutar);
        foreach (
$datos as $id => $dato) {
            if (
$dato['utilizar']) {
                
$this->s__sqls_elegidos[] = $id;
                
$this->s__sqls_a_ejecutar[] = trim($dato['sql']);
            }
        }
    }

    function 
conf__form_elegir_sql(toba_ei_formulario_ml $form_ml)
    {
        
$form_ml->set_datos($this->get_sqls_form());
    }

    
//-- Elijo los parametros de la prueba ---------------------------------------------------
    
function evt__form_test__modificacion($datos)
    {
        
$this->s__detalle_test $datos;
    }

    function 
conf__form_test(toba_ei_formulario $form)
    {
        if (isset(
$this->s__detalle_test)) {
            
$form->set_datos($this->s__detalle_test);    
        }
    }

    
//-- Manejo del lote de prueba ---------------------------------------------------
    
function evt__form_sql__modificacion($datos)
    {
        
$datos['proyecto'] = $this->proyecto;
        
$datos['fuente_datos'] = $this->fuente;
        
$this->dep('datos')->set($datos);
    }

    function 
conf__form_sql(toba_ei_formulario $form)
    {
        
$datos $this->dep('datos')->get();
        
$form->set_datos($datos);        
    }

    
//----------------------------- metodos auxiliares -------------------------------
    
function get_perfiles_datos()
    {
        
$proyecto toba_editor::get_proyecto_cargado();
        return 
toba_proyecto_implementacion::get_perfiles_datos($proyecto);
    }

    function 
grabar_info_test()
    {
        
$temp['seleccionados'] = implode(','$this->s__sqls_elegidos);
        
$temp['parametros'] = serialize($this->s__detalle_test);
        
$this->dep('datos')->set($temp);
        
$this->dep('datos')->sincronizar();            
    }

    function 
get_sqls_form()
    {
        
$datos $this->dep('datos')->get();
        
$sqls explode(';'$datos['lote']);
        
$temp = array();
        foreach (
$sqls as $id => $sql) {
            if (
$sql) {
                
$temp[$id]['sql'] = trim($sql);
                if (isset( 
$this->s__sqls_elegidos )) {
                    if (
in_array($id$this->s__sqls_elegidos)) {
                        
$temp[$id]['utilizar'] = 1;
                    } else {
                        
$temp[$id]['utilizar'] = 0;
                    }
                }
            }    
        }
        return 
$temp;
    }

    
//-- Obtener salida de la prueba --------------------------------------------    
    
function get_cabecera_prueba()
    {
        return 
$this->cabecera_prueba;    
    }
    
    function 
get_pruebas_realizadas()
    {
        return 
$this->pruebas;
    }
    
    
//--------------------- Ejecucion de los test -----------------------------------
    
function ejecutar_test()
    {
        
toba::perfil_de_datos()->set_perfil(toba_editor::get_proyecto_cargado(), $this->s__detalle_test['perfil_datos']);        
        
$this->cabecera_prueba toba::perfil_de_datos()->get_info($this->fuente);
        if (
toba::perfil_de_datos()->posee_restricciones($this->fuente)) {
            
$this->pruebas toba::perfil_de_datos()->probar_sqls($this->fuente
                                                        
$this->s__sqls_a_ejecutar,
                                                        
$this->s__detalle_test['datos_filas'],
                                                        
$this->s__detalle_test['datos_listar']);
            
// Oculto la informacion que no se solicito
            
foreach (array_keys($this->pruebas) as $id) {
                
// Ocultar no procesados
                
if (! $this->pruebas[$id]['modificado'] && $this->s__detalle_test['omitir_no_afectados']) {
                    unset(
$this->pruebas[$id]);
                }
                
// Ocultar el SQL original
                
if (! $this->s__detalle_test['sql_original']) {
                    unset(
$this->pruebas[$id]['sql_original']);
                }
                
// Ocultar analisis de dimensiones
                
if (! $this->s__detalle_test['info_dimensiones']) {
                    unset(
$this->pruebas[$id]['gatillos']);
                    unset(
$this->pruebas[$id]['dimensiones']);
                }
                
// Ocultar el WHERE
                
if (! $this->s__detalle_test['sql_where']) {
                    unset(
$this->pruebas[$id]['where']);
                }            
                
// Ocultar SQL modificado
                
if (! $this->s__detalle_test['sql_modificado']) {
                    unset(
$this->pruebas[$id]['sql_modificado']);
                }
            }
        } else {
            
toba::notificacion()->agregar('El perfil seleccionado no tiene restricciones aplicables');
        }    
    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.8094 ]--