Foros del Web » Programando para Internet » PHP »

error al intentar borrar una carpeta con unlink

Estas en el tema de error al intentar borrar una carpeta con unlink en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente problema: Hice un ejemplo para ver como se creaba y borraba carpetas desde php y me encuentro que crear ...
  #1 (permalink)  
Antiguo 18/12/2007, 11:46
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Sonrisa error al intentar borrar una carpeta con unlink

Hola a todos. Tengo el siguiente problema:

Hice un ejemplo para ver como se creaba y borraba carpetas desde php y me encuentro que crear las creo bien pero borrar me da un error. Os pongo el código y el error que me da:


<?
mkdir("/prueba", 7777);
unlink("/prueba");

?>


Warning: unlink(/prueba) [function.unlink]: Permission denied in ..................


Le puse todos los permisos a esa carpeta (777) para ver si era por no tener permiso de borrar pero no lo entiendo.....


Saludos.
  #2 (permalink)  
Antiguo 18/12/2007, 11:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: error al intentar borrar una carpeta con unlink

Si ese solo es el código que utilizas, puede ser que éstes ejecutando tu instalación de PHP sobre Safe_Mode lo que ocasiona que no puedas borrar carpetas u otros archivos que potencialmente sean dañinos.

Saludos.
  #3 (permalink)  
Antiguo 18/12/2007, 12:04
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 7 meses
Puntos: 33
Re: error al intentar borrar una carpeta con unlink

aeb_asturias:
Por lo que veo has creado un directorio llamado prueba con sus permisos y quieres borrar un directorio y unlink es exclusivamente para borrar archivos.
Saludos
Y espero ayude
Franco
  #4 (permalink)  
Antiguo 18/12/2007, 12:14
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: error al intentar borrar una carpeta con unlink

Gracias a los dos por responder.

Acabo de mirar mi fichero php.ini y tengo:

safe_mode = Off

Así que supongo que no tengo establecido el modo seguro por lo que en teoria me debería dejar borrarlo no???

También probé con la funcion rmdir() pero me sigue dando el mismo error. Lo de utilizar unlink es porque lo habia visto en el manual oficial de php y como no me funcionaba el rmdir pues probé con dicha función a ver si tenia mas suerte pero con ambas obtengo el mismo error de falta de permisos.

No se donde puede estar el problema.
  #5 (permalink)  
Antiguo 18/12/2007, 12:27
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: error al intentar borrar una carpeta con unlink

Que curioso.

Acabo de probar cambiando el unlink y poniendo rmdir() y ahora si me funciona jeje.

Ahora he intentado llevar este ejemplo a mi sitio web donde tengo una página que crea una carpeta y luego tengo otra página web donde intenta borrarla y me sale el mismo error de permisos.

Tengo puesto:

$directorio="/prueba";
if( !$dirhandle = @opendir($directorio) )
return;

while( false !== ($filename = readdir($dirhandle)) ) {
if( $filename != "." && $filename != ".." ) {
$filename = $directorio. "/". $filename;
@unlink($filename);
}
}
rmdir("/prueba");


Primero borro el contenido del directorio (que me lo hace perfectamenet) pero luego al intentar borrar la carpeta me vuelve a salir el error de permiso denegado para ejecutar el rmdir.


Con el ejemplo tan simple que antes os puse al final lo he conseguido pero ahora aplicandolo a mi sitio Web se vuelve a quejar de los permisos. No entiendo muy bien donde esta el problema.
  #6 (permalink)  
Antiguo 18/12/2007, 12:34
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 7 meses
Puntos: 33
Re: error al intentar borrar una carpeta con unlink

aeb_asturias:
Prueba esto:
<?php
rmdir($directorio);
?>

Saludos
Franco

Última edición por franco190453; 18/12/2007 a las 12:39
  #7 (permalink)  
Antiguo 18/12/2007, 13:06
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: error al intentar borrar una carpeta con unlink

Ya se donde esta el problema aunque nose como solucionarlo.

La cuestión es que si no pongo la primera parte del código que borra los ficheros que hay en el interior de la carpeta y solo dejo la linea del rmdir() y me aseguro antes de borrar el contenido de dicha carpeta a "pelo" entonces se me borra la carpeta perfectamente. En caso contrario me da error.

No se que estaré haciendo mal en la parte en la que borro el contenido de la carpeta para que luego me de error borrar la carpeta en sí.


Edito porque ya conseguí solucionarlo. Al final cambié el código que borrara el contenido de la carpeta por este otro:



$directorio="/prueba";

$entries = scandir($directorio);
foreach ($entries as $entry) {
if ($entry != '.' && $entry != '..') {
unlink($directorio."/".$entry);
}
}
rmdir($directorio);


Y me funciona perfectamente.


Gracias a todos por la ayuda prestada.

Última edición por aeb_asturias; 18/12/2007 a las 13:20
  #8 (permalink)  
Antiguo 18/12/2007, 14:17
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: error al intentar borrar una carpeta con unlink

rmdir borra un directorio vacio ;) tu ultima funcion esta buena, ;)
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 21:41.