Comunidad de diseño web y desarrollo en internet online

Ayuda con eval() [captura de error]

Citar            
MensajeEscrito el 28 Feb 2010 11:21 pm
Cordial Saludo.

tengo este codigo

Código PHP :

$valor = @eval( base64_decode($svar[0]) );

donde $svar[0] es un codigo encriptado con base64_encode, este codigo deliberadamente esta mal escrito para que genere un error.
Pero cuando ejecuto el script y ejecuta la sentencia del eval(), el script termina abrutamente alli, puedo colocar lo que yo quiera, como manejo de error( como lo explican el el portal de php ), con try, con trow, con if === false, etc, pero nada funciona.

Por favor ayudenme con esto, ya no se que hacer, necesito capturar el error del eval();

Por mmarulanda

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Feb 2010 11:39 pm
El @ antes de una función sirve para anular la salida de error


cuidado con copiar y pegar codigo ;)

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 01 Mar 2010 12:47 pm
Ok, gracias, la idea es que no aparezcan los errores de php y capturar el error, generlamente serviria asi

Código PHP :

$t = @eval( $codigo );
if( $t ) { $valido; } else { $novalido; }


O con el set_error_handler y mi funcion de error, pero NINGUNO SIRVE...

Por mmarulanda

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Mar 2010 04:43 pm

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 06 Mar 2010 01:00 am
Hola y Gracias.
Pero no esto no me sirvio, intente con todas las funcion alli expuestas, pero no me sirvio ninguna.

yo se que si le quito la @ a eval me saca error, pero yo necesito personalizar este error, el error actual es el siguiente

Parse error: syntax error, unexpected ';', expecting T_STRING in D:\MAMSoft\php\PControl\tmp.php on line 3

yo se como arreglar el error pero esa no es la idea, la idea es personalizar este tipo de errores.

Gracias

Por mmarulanda

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Mar 2010 01:40 am
una de esas funciones te da el numero del error
con eso puedes perzonalizar los errores , de todos modos , no le veo sentido a perzonalizar los errores, estos son errores de programacion, si tu codigo va bien no debieras necesitarlos, esto en todo caso es util para el desarrollo de frameworks

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 06 Mar 2010 06:34 pm
Ok, Gracias.

Por mmarulanda

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Mar 2010 11:12 pm

Código PHP :

$str='for($i=0; $i<10; $i++)echo "$i<br/>";';
$eval=@eval($str);
if($eval===false){
    echo '<b style="color:red">Se Tiene Un Error en tu cadena</b>';
}


la función eval te retorna null si el código fue ejecutado o bien un valor si el código ejecutado lo retorna, en caso de fallo te retorna false, tienes que comparar con "===" con false el retorno y así logras saber si hubo un error o no.. al parecer no hay forma de usar set_error_handler() para depurar este los errores que se encutre dentor del eval, ademas es desaconsajeble utilizar este metodo ya que puedes dejar huecos en tu seguridad bastante graves. si contaras con que fin quieres hacer esto talvez te podria ayudar un poco mas o bien buscar una mejor manera de lo que quieres realizar

Por wariodiaz

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Abr 2010 09:30 pm

mmarulanda escribió:

Ok, gracias, la idea es que no aparezcan los errores de php y capturar el error, generlamente serviria asi

Código PHP :

$t = @eval( $codigo );
if( $t ) { $valido; } else { $novalido; }


O con el set_error_handler y mi funcion de error, pero NINGUNO SIRVE...


no se pero a que te refieres con capturar el error osea el Error que Sale Dentro del Eval O el error que produce el EVAL

ya que en mi versiond ePHP 5.3

para capturar el error
es

Código PHP :

$error = @eval("<?php ".$codigo_php);
if(!$error)
{
    echo "Existe un Error en el Parseador de PHP";

}

ya que hay errores que no se peude manejar con set handler error por ejemplo en eval en la versionde php que tengo necesariamente tengo que poner con <?php para inciar el codigo y si el codigo esta mal
ahora talves se me ocurre que queires hacer eso mismo
bueno haber prueba

Código PHP :

<?php
$valor = @eval("<?php ".base64_decode($svar[0]) );
?>

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.