Foros del Web » Programando para Internet » PHP »

CHMOD para archivos con PHP

Estas en el tema de CHMOD para archivos con PHP en el foro de PHP en Foros del Web. Hola Necesito cambiar los permisos de los archivos contenidos en un directorio antes de ejecutar un script. Intento así: Código PHP: $modlevel = 0777 ; ...
  #1 (permalink)  
Antiguo 08/12/2008, 15:20
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
CHMOD para archivos con PHP

Hola
Necesito cambiar los permisos de los archivos contenidos en un directorio antes de ejecutar un script.
Intento así:
Código PHP:
$modlevel=0777;
$dir dir("cache/");
if (
is_dir($dir) && $handle opendir($dir)) {
    while (
false !== ($file readdir($handle))) {

    
$filename=$dir."/".$file;
    @
chmod  ($filename$modlevel);
}

Pero me sale un error que dice:
Catchable fatal error: Object of class Directory could not be converted to string in /home/myaccount/public_html/folder/chmod2.php on line 4

Cómo puedo hacer para lograr eso ?
Por favor
  #2 (permalink)  
Antiguo 08/12/2008, 15:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: CHMOD para archivos con PHP

Lo que pasa es que estas mezclando cosas, dir() te regresa una instancia de la clase Directory, quita el dir() si vas a ciclar con opendir y readdir, no lo necesitas.

Saludos.
  #3 (permalink)  
Antiguo 08/12/2008, 15:51
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: CHMOD para archivos con PHP

Gracias por responderme (aunque a veces soy una... sorry)
Así ?
Código PHP:
$modlevel=0777;
$dir "cache";
if (
is_dir($dir) && $handle opendir($dir)) {
    while (
false !== ($file readdir($handle))) {

    
$filename=$dir."/".$file;
    echo 
$filename;
    @
chmod  ($filename$modlevel);
}

Ahí no me tira error pero no cambia los permisos.
Estoy viendo que en algún momento cambió pero ahora no
Ahora dice:
Warning: chmod() [function.chmod]: Operation not permitted in /home/myaccount/public_html/folder/chmod2.php on line 9
cache/71285467054d879128edede53e04c2a8.spc
Por qué GatorV
  #4 (permalink)  
Antiguo 08/12/2008, 16:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: CHMOD para archivos con PHP

Porque no tienes los permisos (valga la redundancia) para cambiar los permisos... Tienes que ser el owner del archivo que quieres cambiar para poder cambiar los permisos.

Saludos.
  #5 (permalink)  
Antiguo 08/12/2008, 16:47
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: CHMOD para archivos con PHP

eso significa que habría que poner nobody como propietario de esos archivos entrando con acceso de root ?

y a la vez pregunto... en realidad mi problema es que simplepie no puede escribir en el cache. El mismo script trabaja perfecto en otros sitios pero tira error en uno en particular.
Puede ser porque el script lo instaló un usuario común con una cuenta ftp sin privilegios y los permisos para el cache fueron seteados por ese mismo usuario común ?
Esto lo he consultado a desarrolladores de simplepie también y nadie entiende qué pasa ahí
  #6 (permalink)  
Antiguo 08/12/2008, 16:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: CHMOD para archivos con PHP

En efecto muchas veces cosas como esas es problema de ejecutar php con safe_mode en On, ya que en On comprueba que el usuario sea el mismo, y mas bien en lugar de ponerlos como nobody los tienes que poner igual al usuario de Apache o de PHP si esta como CGI.

Lo mas recomendable es poner safe_mode en Off (por algo ya esta descontinuado en PHP6).

Saludos.
  #7 (permalink)  
Antiguo 08/12/2008, 17:50
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: CHMOD para archivos con PHP

Muchísimas gracias !!!
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 13:27.