Foros del Web » Programando para Internet » PHP »

Ejecutar o validar codigo erroneo

Estas en el tema de Ejecutar o validar codigo erroneo en el foro de PHP en Foros del Web. Buenas, ¿Existe algun modo de saber si un codigo que voy a ejecutar en EVAL esta bien escrito?, es que estoy haciendo un sistema para ...
  #1 (permalink)  
Antiguo 10/04/2013, 15:39
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Ejecutar o validar codigo erroneo

Buenas,

¿Existe algun modo de saber si un codigo que voy a ejecutar en EVAL esta bien escrito?, es que estoy haciendo un sistema para ejecutar lineas de codigo insertadas por los usuarios... y al enviarme un codigo mal escrito el php se cuelga.

¿Existe algun modo de validar el codigo o de que el php no se cuelge?

:D
  #2 (permalink)  
Antiguo 10/04/2013, 17:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ejecutar o validar codigo erroneo

Con PHP es imposible validar si un código es correcto en tiempo de ejecución, lo más que puedes conseguir es averiguar errores de sintaxis pero no más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/04/2013, 20:33
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Ejecutar o validar codigo erroneo

puede que con excepciones pueda solucionarlo

http://php.net/manual/es/language.exceptions.php

otra opcion seria http://ar2.php.net/manual/es/book.exec.php
como si lo envias por consola y evaluas la respuesta

No se si sabias pero php, se puede ejecutar por consola.Por ejemplo en la consola podes poner

php echo "que sale";

respuesta -> que sale

php ruta/aTuArchivo.php

respuesta -> depende de lo que tengas en ti archivo
  #4 (permalink)  
Antiguo 10/04/2013, 23:10
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Ejecutar o validar codigo erroneo

Por si acaso

Cita:
El constructor de lenguaje eval() es muy peligroso porque permite la ejecución de código de PHP arbitrario. Su uso está totalmente desaconsejado. Si se ha verificado cuidadosamente que no existe otra opción que usar este constructor, se ha de poner especial atención en no pasar ninguna información proporcionada por el usuario a esta función sin haberla validado apropiadamente con anterioridad.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 11/04/2013, 14:39
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Ejecutar o validar codigo erroneo

Muchas gracias a todos,

Si, se que es peligroso esto de los evals. El caso es que me parece que voy a tener que hacer un pequeño lenguaje para permitir a los usuarios realizar pequeñas formulas, en plan EXCEL. El caso es que habia pensando usar EVAL... pero nada... me lo voy a tener que currar.

:D

Muchas gracias a todos... respecto lo de la terminal gracias por el apunte.
  #6 (permalink)  
Antiguo 11/04/2013, 19:39
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Ejecutar o validar codigo erroneo

Que tipos de formulas necesitas calcular.


Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Etiquetas: erroneo, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:14.