Foros del Web » Programando para Internet » PHP »

Permisos en carpetas y archivos

Estas en el tema de Permisos en carpetas y archivos en el foro de PHP en Foros del Web. Buenas de nuevo, despues de haber indagado mucho por ahi, a ver si conseguia la manera de solucionar el problema no me queda mas remedio ...
  #1 (permalink)  
Antiguo 10/06/2010, 01:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Permisos en carpetas y archivos

Buenas de nuevo, despues de haber indagado mucho por ahi, a ver si conseguia la manera de solucionar el problema no me queda mas remedio que pedirr ayuda...... porque ya no se como solucionar esto...
Un usuario se registra y atraves de este registro se cre una carpeta, con varias subcarpetas y varios archivos, las carpetas se me crean con los permisos que necesito 0777, y las subcarpetas tambien, pero los archivos que se me crean dentro de la carpeta principal se me crean 0644, entonces cuando quiero sobreescribirlos desde el ftp no me deja.
Os dejo el codigo para ver que deberia cambiar para solucionar esto:

Concretamente los archivos que no me da los permisos que yo quiero son $file

Código PHP:
Ver original
  1. mkdir("../".$equipo);
  2. chmod("../".$equipo."/",0777);
  3.         $origen = "../prueba/";
  4.         $destino = "../".$equipo."/";
  5.         if ($vcarga = opendir($origen)){
  6.             while($file = readdir($vcarga)){
  7.                 if ($file != "." && $file != ".."){
  8.                     copy($origen . $file, $destino . $file);
  9.                 }
  10.             }
  11.             closedir($vcarga);
  12.             }
  13. mkdir("../$equipo/img/");
  14. chmod("../".$equipo."/img/",0777);
  15.         $origen1 = "../prueba/img/";
  16.         $destino1 = "../".$equipo."/img/";
  17.         if ($vcarga1 = opendir($origen1)){
  18.             while($file1 = readdir($vcarga1)){
  19.                 if ($file1 != "." && $file1 != ".."){
  20.                     copy($origen1 . $file1, $destino1 . $file1);
  21.                 }
  22.             }
  23.             closedir($vcarga1);
  24.         }
  25. mkdir("../$equipo/img/fondos");
  26. chmod("../".$equipo."/img/fondos/",0777);
  27.         $origen2 = "../prueba/img/fondos/";
  28.         $destino2 = "../".$equipo."/img/fondos/";
  29.         if ($vcarga2 = opendir($origen2)){
  30.             while($file2 = readdir($vcarga2)){             
  31.                 if ($file2 != "." && $file2 != ".."){
  32.                     copy($origen2 . $file2, $destino2 . $file2);
  33.                 }
  34.             }
  35.             closedir($vcarga2);
  36.         }
  37. mkdir("../$equipo/fuentes");
  38. chmod("../".$equipo."/fuentes/",0777);
  39.         $origen3 = "../prueba/fuentes/";
  40.         $destino3 = "../".$equipo."/fuentes/";
  41.         if ($vcarga3 = opendir($origen3)){
  42.             while($file3 = readdir($vcarga3)){
  43.                 if ($file3 != "." && $file3 != ".."){
  44.                     if(copy($origen3 . $file3, $destino3 . $file3)){
  45.                         header('location:registrado.php?registro=fin&equipo='.$equipo);
  46.                     }
  47.                 }
  48.             }
  49.             closedir($vcarga3);
  50.         }

gracias de antemano
__________________
Hasta otra.... porque seguro que habrá otra....
  #2 (permalink)  
Antiguo 10/06/2010, 03:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Permisos en carpetas y archivos

Usa también chmod en los archivos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 10/06/2010, 05:18
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Permisos en carpetas y archivos

ya habia probado poniendo dentro del bucle while:

chmod($file,0777);

y como no funcionaba probé a ponerlo dentro del if, pero sigue sin funcionarme, y bueno no se me ocurre ya otro manera...
__________________
Hasta otra.... porque seguro que habrá otra....
  #4 (permalink)  
Antiguo 10/06/2010, 05:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Permisos en carpetas y archivos

¿Qué error te sale al usar copy?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 10/06/2010, 05:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Permisos en carpetas y archivos

No me sale ningun error, todo lo crea correctamente, lo unico que no me hace bien son los permisos de los archivos, porque por el contrario los permisos de las subcarpetas si que los respecta y los crea 0777.
__________________
Hasta otra.... porque seguro que habrá otra....
  #6 (permalink)  
Antiguo 10/06/2010, 05:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Permisos en carpetas y archivos

La prueba la hago en el servidor no en localhost.

Si le pusiera esto me escupiria un error:

copy($origen . $file, $destino . chmod($file,0777));
__________________
Hasta otra.... porque seguro que habrá otra....
  #7 (permalink)  
Antiguo 22/06/2010, 00:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Permisos en carpetas y archivos

Por si a alguien le puediera interesar o tuviera el mismo problema he encontrado la solucion, y es añadir una fila dentro del "if" por lo que quedaria asi:

Código PHP:
Ver original
  1. mkdir("../".$equipo);
  2.         chmod("../".$equipo."/",0777);
  3.         $origen = "../prueba/";
  4.         $destino = "../".$equipo."/";
  5.         if ($vcarga = opendir($origen)){
  6.             while($file = readdir($vcarga)){
  7.                 if ($file != "." && $file != ".."){
  8.                     copy($origen . $file, $destino . $file);
  9. // Esta es la fila que da permisos a todos los archivos dentro de esa carpeta                  
  10. chmod("../".$equipo."/".$file, 0777);
  11.                 }
  12.             }
  13.             closedir($vcarga);
  14.             }
__________________
Hasta otra.... porque seguro que habrá otra....

Etiquetas: carpetas, permisos
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 17:27.