Foros del Web » Programando para Internet » PHP »

problemas con Eval ()

Estas en el tema de problemas con Eval () en el foro de PHP en Foros del Web. Tengo una funcion para borrar muchos archivos que se va almacenando en una variable (dentro de un bucle) de esta forma. $borrar .= "unlink(". $destino ...
  #1 (permalink)  
Antiguo 28/01/2009, 11:51
 
Fecha de Ingreso: diciembre-2002
Mensajes: 15
Antigüedad: 21 años, 4 meses
Puntos: 0
problemas con Eval ()

Tengo una funcion para borrar muchos archivos que se va almacenando en una variable (dentro de un bucle) de esta forma.

$borrar .= "unlink(". $destino . ");";

Como aún no quiero que se ejecute la función unlink () la guardo a modo de texto entre "".

Tengo entendido que para ejecutarla posteriormente puedo usar la función eval ().

Entonces mi pregunta es como ejecuto esas funciones?

eval($borrar) no hace nada.
  #2 (permalink)  
Antiguo 28/01/2009, 11:55
 
Fecha de Ingreso: mayo-2006
Mensajes: 288
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: problemas con Eval ()

ummm parece espinoso tu problema trata haciendo esto:

$borrar = $destino;

Y al final cuendo crees que debas borrar haces esto:

unlink($borrar);

Espero haber aclarado tu duda.

Una cosa mas que debes tener en cuenta ese archivo que intentas borar debe tener permisos 777 y tratandose de una carpeta o directorio entero es aun mas espinoso.

Saludos :P-
  #3 (permalink)  
Antiguo 28/01/2009, 12:18
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problemas con Eval ()

Te faltan unas comillas para que eval pueda interpretar el nombre de archivo a borrar, recuerda que unlink debe recibir una variable o una cadena para ubicar el archivo a eliminar:

Si $destino = 'borrar.txt' entonces $borrar = 'unlink(borrar.txt);' <- esto ultimo es lo que ve eval() y seguramente tratara de localizar y concatenar las constantes borrar y txt o algun otro resultado no deseado.

Entonces, asigna $borrar = "unlink('$destino');";
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 28/01/2009, 12:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: problemas con Eval ()

En efecto es mejor si guardas en una cadena, o en un arreglo los archivos a borrar y al final del proceso recorres el arreglo y llamas a unlink por cada entrada. Ten en cuenta que usar eval() es peligroso ya que pueden inyectar código como regla evita a toda costa el uso de eval(), siempre hay formas de hacer lo mismo usando código normal.

Saludos
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 04:08.