Pues esa es mi duda, mas que util la verdad es que me parece una vulnerabilidad para un programador descuidado.
Porque ejecutar una sentencia desde eval y no desde el código normal?
Gracias
por que con eval() podes generar codigo PHP dinamicamente :D
generacion de arrays, funciones, cosas mas dinamicas que dinamicas :xD
Le metes un filtro para que solo pasen cosas locales, o sea, nunca recuperar variables ingresadas por el usuario, o evitarlo lo mas que puedas :D
eval() es la piedra fundamental de cualquier lenguaje interpretado, todo lo que hace un lenguaje interpretado es llamar a eval(), lisp hace eval(), python hace eval(), ruby hace eval(), perl hace eval() y PHP hace eval(), lee la línea y se la pasa a eval.
No hace mucho, recuerdo haber leído fundamentos de la programación en perl, en la cual hacían un requiere con la función eval, los pasos eran más o menos los siguiente:
tomaban el archivo con código perl
lo abrían
se lo pasaban a eval()
y ya tenía disponible todas las funciones de ese módulo, PHP nace de perl y por lo tanto no dudo que require/include no hagan más o meno eso, y sin eval no existiría ni include ni require, o sea, sería aún más chicloso el código PHP.
Cita de: Anibal784 en 26 Junio 2009, 03:23 AM
eval() es la piedra fundamental de cualquier lenguaje interpretado, todo lo que hace un lenguaje interpretado es llamar a eval(), lisp hace eval(), python hace eval(), ruby hace eval(), perl hace eval() y PHP hace eval(), lee la línea y se la pasa a eval.
No hace mucho, recuerdo haber leído fundamentos de la programación en perl, en la cual hacían un requiere con la función eval, los pasos eran más o menos los siguiente:
tomaban el archivo con código perl
lo abrían
se lo pasaban a eval()
y ya tenía disponible todas las funciones de ese módulo, PHP nace de perl y por lo tanto no dudo que require/include no hagan más o meno eso, y sin eval no existiría ni include ni require, o sea, sería aún más chicloso el código PHP.
man y tienes algun ejemplo en php que el eval sea impresindible?
por que yo eh hecho sistemas muy robustos y la verdad no eh ocupado mucho el eval, lo eh sabido suplementar.
algun ejemplo que no sea de criptologia
Que yo sepa eval evalua una cadena y si en ella encuentra código ejecutable (en este caso PHP) lo ejecuta.
Es muy últil para hacer cosas como templates (minis... y normalmente se realiza en el buffer de salida de php) o tener formularios donde incluir código php en textareas... por ejemplo.
Un saludo,
He leído una situación útil.
Imagina que has sacado una fórmula matemática de una base de datos y la has guardado en la variable $formula.
Para obtener el resultado no podrías hacer
$resultado = $formula;
Porque resultado también contendría la formula.
Pero si puedes hacer esto :
eval("$resultado = ".$formula);
Y se tomaría $formula como una expresión matemática y no como una string.
Gracias por responder
@HardieVon
implode(',',
array_map(create_function('$e', 'return \'"\'.$e.\'"\';'), array_values($attr_value))));
que tu no lo hayas usado no quiere decir que no exista y que no tenga utilidad, no se como estará implementada create_function, pero de lo que estoy seguro es que hace uso de la función eval().
Míralo como asm y C, en C puedes usar asm cuando quieras, sin embargo existen muchos sistemas y muy robustos que no tienen una línea de asm.
Cita de: Anibal784 en 26 Junio 2009, 15:06 PM
@HardieVon
implode(',',
array_map(create_function('$e', 'return \'"\'.$e.\'"\';'), array_values($attr_value))));
que tu no lo hayas usado no quiere decir que no exista y que no tenga utilidad, no se como estará implementada create_function, pero de lo que estoy seguro es que hace uso de la función eval().
Míralo como asm y C, en C puedes usar asm cuando quieras, sin embargo existen muchos sistemas y muy robustos que no tienen una línea de asm.
Fijate lo que dices men por que todo lo que escribiste es mentira, citame donde puse que no lo eh usado y donde dije que no existe?.
braulio - es muy bueno tu ejemplo. ;)
PD: me apendeje.
ando estresado, ni mas ni menos ;)
que por cierto aqui en este post. demuestro un excelente uso.
http://foro.elhacker.net/php/iquestcomo_hago_include_a_una_web_externa-t259360.0.html