Foros del Web » Programando para Internet » PHP »

Problemas al eliminar directorion con unlink

Estas en el tema de Problemas al eliminar directorion con unlink en el foro de PHP en Foros del Web. Tengo problemas con la eliminacion de un directorio mensaje de error: Warning: unlink(catalogos/814677) [function.unlink]: Permission denied in elimifoto.php on line 19 Warning: Cannot modify header ...
  #1 (permalink)  
Antiguo 20/11/2008, 15:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Problemas al eliminar directorion con unlink

Tengo problemas con la eliminacion de un directorio
mensaje de error:

Warning: unlink(catalogos/814677) [function.unlink]: Permission denied in elimifoto.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at elimifoto.php:19) in elimifoto.php on line 26


Alguien que me pueda ayudar ha encontrar el problema......
Código PHP:
<?
  $catalogo
=$_REQUEST['catalogo'];
  
$foto=$_REQUEST['imag'];
  
//Elimino la foto
   
unlink('catalogos/'.$catalogo.'/'.$foto);
   
//Si fotos = 0, Eliminar Catalogo y actualizar Base de Datos
  
$dir=opendir('catalogos/'.$catalogo);
  while(
$filename=readdir($dir))
  {
      
$ext=strtolower(substr($filename,-3,3));
      if(
$ext == "jpg")
        
$cuenta=cuenta+1;
  }
  if(
$cuenta==0)
  {
    
//Si elimino la ultima foto elimino el catalogo (Carpeta-Directorio).
    
unlink('catalogos/'.$catalogo);    
    
//Actualizar base exipro, con swfoto_p en 0
    
include("config.php");
    
$foto=0;
    
$sql="update exipro set swfoto_p='$foto' where codpro_p = '$catalogo' limit 1";
    
mysql_query($sql,$conexion) or die("Problemas con actualizacion de catalogo..<b>".mysql_error());
  }
  
header("Location: ".$_SERVER['HTTP_REFERER']);
?>
como referencia el catalogo (Carpeta-Directorio) los creo en otra aplicacion asi:
Código PHP:
<?
 
@mkdir("catalogos/".$codigo,0777);
?>
  #2 (permalink)  
Antiguo 20/11/2008, 15:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas al eliminar directorion con unlink

Para eliminar directorios usa rmdir() (http://www.php.net/manual/es/function.rmdir.php). El segundo error es de lo que te expliqué en tu otro tema.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 21/11/2008, 08:50
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Problemas al eliminar directorion con unlink

Pense que realizando algunos cambios, podria varia el resultado.
pasando de unlink a rmdir; pero no ha sido asi, a pesar de haber leido lo recomendado por David.
Obteniendo el siguiente mensaje de error:
Warning: rmdir(catalogos/4216837) [function.rmdir]: Permission denied in elimifoto.php on line 35
¿Alguna idea que me ayude a dar solucion a este problema?
Código PHP:
<?
   
//Cuenta las fotos
  
$fotos=0;
  
$dir='catalogos/'.$catalogo;
  if (
is_dir($dir)) 
  {
     if (
$gd opendir($dir)) 
    {
        while ((
$archivo readdir($gd)) !== false
        {
           if(
$archivo != '.' && $archivo != '..' && substr($archivo,-3) != "txt" && $archivo != "")
           {
              
$fotos $fotos 1;
           }
        }
        
closedir($gd);
     }
  }
  
//Si foto = 0 elimino directorio(Carpeta-Catalogo)   
  
if($fotos==0)
  {
     
$dir=$catalogo;
     
$path='catalogos/'.$catalogo;
     if (
$handle opendir($path)) 
     {
        for (;
false !== ($file readdir($handle));) 
       {
          if(
$file != "." && $file != ".."
          {
              if(
unlink($path.$file)) $info.="file ".$file." Eliminacion Exitosa<BR>";
              else 
$info.="No se puede eliminar el archivo ".$file."<BR>";
          }
       }
       
closedir($handle);
       if(!
rmdir($path)) $info.="<BR>No se pudo borrar el directorio ".$path;
       else 
$info.='<BR>'.$path.' Eliminado';
     }
      else 
$info.="Problemas con borrado de directorio";

   }
//header("Location: ".$_SERVER['HTTP_REFERER']);
?>
Desde ya se agradece cualquier colaboracion.
  #4 (permalink)  
Antiguo 21/11/2008, 08:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas al eliminar directorion con unlink

El mensaje de error es obvio, no tienes permisos suficientes para eliminar la carpeta. Revisa los permisos que tienes sobre la carpeta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 21/11/2008, 09:25
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Problemas al eliminar directorion con unlink

Gracias por tu respuesta.
Esta aplicacion la pruebo con un emulador bajo windows.
A pesar de crear el catalogo con @mkdir("catalogos/".$codigo,0777).
¿ No queda con los permisos necesarios como para eliminar el directorio.?

¿ Crees que podria tener problemas en su funcionamiento, cuando traslade la aplicación a un servidor o tendria que mejorar?

Nota: Cuando hago la verificación de la carpeta en windows, estan marcadas solo lectura.
Gracias por tu preocupación.
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 12:52.