Título: [?]Para que sirve eval()? Publicado por: braulio-- en 25 Junio 2009, 23:54 pm 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 Título: Re: [?]Para que sirve eval()? Publicado por: Azielito en 26 Junio 2009, 00:04 am 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 Título: Re: [?]Para que sirve eval()? Publicado por: 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. Título: Re: [?]Para que sirve eval()? Publicado por: HardieVon en 26 Junio 2009, 05:14 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 Título: Re: [?]Para que sirve eval()? Publicado por: ^Cloud^ en 26 Junio 2009, 11:13 am 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, Título: Re: [?]Para que sirve eval()? Publicado por: braulio-- en 26 Junio 2009, 12:52 pm 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 Código Porque resultado también contendría la formula. Pero si puedes hacer esto : Código Y se tomaría $formula como una expresión matemática y no como una string. Gracias por responder Título: Re: [?]Para que sirve eval()? Publicado por: Anibal784 en 26 Junio 2009, 15:06 pm @HardieVon
Código 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. Título: Re: [?]Para que sirve eval()? Publicado por: HardieVon en 27 Junio 2009, 03:13 am @HardieVon 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?.Código 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. 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 |