Foros del Web » Programando para Internet » PHP »

Copiar estructura de archivos... AYUDA POR FAVOR

Estas en el tema de Copiar estructura de archivos... AYUDA POR FAVOR en el foro de PHP en Foros del Web. Saludos queridos amigos, mi problema es el siguiente: Estoy creando un generador de portales (estilo blog por decirlo así) ... La cuestión radica, que cuando ...
  #1 (permalink)  
Antiguo 30/08/2010, 15:07
Avatar de kovers  
Fecha de Ingreso: junio-2008
Ubicación: Caracas
Mensajes: 37
Antigüedad: 16 años, 5 meses
Puntos: 0
Copiar estructura de archivos... AYUDA POR FAVOR

Saludos queridos amigos, mi problema es el siguiente: Estoy creando un generador de portales (estilo blog por decirlo así) ... La cuestión radica, que cuando inicio sesión en el sistema que estoy haciendo, el mismo me da la funcionalidad de crear un nuevo portal y a su vez, ver en lista los que ya tengo creados, el detalle está en que cuando lo estoy creando, aparte de enviar los datos generales a la BD, tengo que copiar una estructura o sistema de archivos, de un lugar (ruta) a otro (cosa que no se esta haciendo) que me permitan la ejecución del portal creado... la estructura o sistema de archivos ya esta creada(o).

me explico mejor: cada usuario tiene su propia carpeta, donde estaran alojados separados por carpetas, los portales que el mismo haya creado, ejemplo

___USUARIO
|___PORTAL
|___ESTRUCTURA DE ARCHIVOS(COPIADA)
aqui les dejo, el arbol de mi sistema:

SISTEMA
COMUN
LIBRERIAS
ESTRUCTURA CREADA
PORTALES
USUARIO
PORTAL
ESTRUCTURA COPIADA
MODULO CREAR PORTALES
la funcion que estoy utilizando es esta:

Código PHP:
function copy_dir($origen$destino){
   if (
$vcarga = @opendir($origen))
    {
        while(
$file readdir($vcarga))
        {
            if(!
file_exists($destino.$file))
            {
                if (
$file != "." && $file != "..")
                {
                    
                    if(
is_dir($origen $file) && chdir($origen $file))
                    {                    
                        
umask(0);
                        
mkdir($destino.$file.'/'0777);
                        
umask($destino.$file.'/');
                        
$this->copy_dir($origen $file '/'$destino $file '/');
                    }
                       else 
                        {
                            @
copy($origen $file$destino $file);
                            @
chmod($destino $file0777);                            
                        }
                    }
                }
            }
            
closedir($vcarga);

la funcion la llamo de esta manera en el modulo de crear portales:

Código PHP:
public $directorio'../comun/sitios/' $USUARIO $PORTAL;
public 
$origen '../comun/lib/sitio/';

   
$this->copy_dir($this->origen$this->directorio); 
y lamentablemente por mas que lo he intentado, siempre me da este error:

Código:
Warning: mkdir() [function.mkdir]: No such file or directory ...
disculpen si molesto, pero me urge terminar este modulo de gran importancia. Espero atentamente a sus comentarios... GRACIAS
  #2 (permalink)  
Antiguo 30/08/2010, 21:19
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Copiar estructura de archivos... AYUDA POR FAVOR

el directorio que hace de root principal requiere permisos de escritura
  #3 (permalink)  
Antiguo 31/08/2010, 07:03
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Copiar estructura de archivos... AYUDA POR FAVOR

$USUARIO y $PORTAL terminan con "/" cierto?
  #4 (permalink)  
Antiguo 31/08/2010, 08:26
Avatar de kovers  
Fecha de Ingreso: junio-2008
Ubicación: Caracas
Mensajes: 37
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Copiar estructura de archivos... AYUDA POR FAVOR

Saludos! gracias por responder... si de hecho @maycolalvarez los permisos ya están asignados, pero sigue dando el error... y si @mayid ambas variables terminan con '/'. espero sus respuestas.
  #5 (permalink)  
Antiguo 31/08/2010, 09:34
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Copiar estructura de archivos... AYUDA POR FAVOR

Y el problema está en la primera pasada o cuando hacés la función recursiva?
$this->copy_dir($origen . $file . '/', $destino . $file . '/');

Yo haría la prueba básica para chequear que los datos son buenos:
echo $directorio." : ".$origen;

La verdad es que la función parece bien estructurada.
  #6 (permalink)  
Antiguo 31/08/2010, 09:40
Avatar de kovers  
Fecha de Ingreso: junio-2008
Ubicación: Caracas
Mensajes: 37
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Copiar estructura de archivos... AYUDA POR FAVOR

Saludos nuevamente yo! PROBLEMA RESUELTO ... lo que hice fue lo siguiente:
Definí variables globales, con rutas relativamente absolutas, me explico mejor:
Código PHP:

define 
('RUTA_DESTINO'$_SERVER['DOCUMENT_ROOT'] . 'sistema/comun/sitios/');
define ('RUTA_ORIGEN'$_SERVER['DOCUMENT_ROOT'] . 'sistema/comun/lib/sitio/'); 
Construyo las rutas a copiar con los valores de las variables globales.
Código PHP:

   
public $directorioRUTA_DESTINO $USUARIO $PORTAL;
   public 
$origen RUTA_ORIGEN
Por ultimo llamo a la función
Código PHP:

   $this
->copy_dir($this->origen$this->directorio); 
PD: el código de la función copy_dir funciona correctamente, espero pueda ser de ayuda para futuras problemáticas comunes.

Al fin y al cabo, somos lo que hacemos para cambiar lo que somos... Eduardo Galeano
  #7 (permalink)  
Antiguo 31/08/2010, 10:47
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Copiar estructura de archivos... AYUDA POR FAVOR

Entonces el problema era de rutas relativas?

Si, es buenísimo tener un path absoluto en una constante cuando se trabajo con objetos.
  #8 (permalink)  
Antiguo 31/08/2010, 12:54
Avatar de kovers  
Fecha de Ingreso: junio-2008
Ubicación: Caracas
Mensajes: 37
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Copiar estructura de archivos... AYUDA POR FAVOR

sip ese era el problema, aunque no siempre es bueno tener rutas absolutas, ya que como todo sistema (web) debe ser colgado en un servidor web, todo servidor debe tener seguridad, y ocultar la ruta donde se alojan los portales es una de las reglas, ejemplo:

en ves de tener /var/www/ como ruta absoluta para la publicación, lo cambias por /home/usuario/portales

entonces si utilizas rutas absolutas, corres el riesgo de que si la ruta cambia, el código también...

ahora tengo otro problemita:

¿que significa esto:?

Código:
Warning: chdir() [function.chdir]: No such file or directory (errno 2)
mi intención es borrar lo que acabo de copiar, y para eso estoy haciendo lo siguiente:

Código PHP:

function remove_dir$dir ) {
    
        
$err false;
        if( 
chdir$dir ) ) {
            
$handle opendir$dir );
            while( 
false !== ($item readdir$handle ) ) ) {
                if( 
$item != '.' && $item != '..' ) {
                    if( 
is_dir$dir.'/'.$item ) ) {
                    
                    echo 
$dir.'/'.$item '<br/>';
                    
                        
chmod$dir.'/'.$item0777 );
                        
remove_dir$dir.'/'.$item );
                    }
                    else {
                        
chmod$dir.'/'.$item0777 );
                        
unlink$dir.'/'.$item );
                    }
                }
            }
            
closedir$handle );
            @
chmod$dir0777 );
            if( @
rmdir$dir ) ) {
                
$err true;
            }
        }
        else
            
$err false;
        
        return 
$err;
    } 
al parecer dice que no existe la ruta, cosa obviamente que es mentira.

Etiquetas: copiar, estructura, favor
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 14:53.