Foros del Web » Programando para Internet » PHP »

mensaje error unlink()

Estas en el tema de mensaje error unlink() en el foro de PHP en Foros del Web. Código PHP: Warning : unlink ( proyectos / flyrs /) [function. unlink ]:  Is a directory in  / home / vaneg / public_html / admin / delete . php on line 27  ...
  #1 (permalink)  
Antiguo 10/01/2011, 12:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
mensaje error unlink()

Código PHP:
Warning:unlink(proyectos/flyrs/) [function.unlink]: Is a directory in /home/vaneg/public_html/admin/delete.php on line 27 

Código PHP:
<?php
include 'conectar.php';

//eliminando del servidor:

$ID $_GET[id];
$result mysql_query("SELECT * FROM detalles WHERE id=$_GET[id]"); 
while (
$row mysql_fetch_array($result)) {
    
$borrar = array(
        
"$row[img_thumb]",
        
"$row[img_identidad]",
        
"$row[img_url]",
        
"$row[img_slide]",
        
"$row[img_flyrs]",
        
"$row[img_flyrs2]",
        
"$row[img_card]",
        
"$row[img_card2]",
        
"$row[img_wall]",
        
"$row[img_personaje]",
        
"$row[img_ilustracion]",
        
"$row[img_banner]",
        
"$row[img_banner2]",
        
"$row[img_emailing]",
    );
}
foreach (
$borrar as $value) {
    
unlink($value);      //Linea 27.                      
}

//eliminando de la base de datos:

mysql_query("DELETE FROM detalles WHERE id=$_GET[id] ") or DIE(mysql_error());

//Cierro la conexión
mysql_close($link);
header ('Location: cpanel.php')
?>
Puede ser que de este error pq unlink() no tiene un archivo para eliminar???
  #2 (permalink)  
Antiguo 10/01/2011, 12:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mensaje error unlink()

exacto!! ¿si sabes leer?
Cita:
Is a directory
el mensaje de error solo dice la verdad, unlink() solo sirve para borrar archivos...

¡no carpetas!

antes de borrar un archivo, deberías comprobar que es un archivo, y que existe... usa is_file()
http://php.net/is_file
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/01/2011, 12:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: mensaje error unlink()

Entonces para ejecutar unlink() previamente debería comprobar si en el directorio hay o no archivos??
  #4 (permalink)  
Antiguo 10/01/2011, 13:46
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: mensaje error unlink()

No puedo dar en la tecla con esto....ayyy
  #5 (permalink)  
Antiguo 10/01/2011, 13:52
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: mensaje error unlink()

Pues unlink no elimina carpetas(directorios) , para eliminar una carpeta se usa la funcion rmdir
Aparte esa carpeta que vas a eliminar no debe tener archivos y carpeta osea debe estar vacia.
  #6 (permalink)  
Antiguo 10/01/2011, 13:54
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: mensaje error unlink()

Lo que necesito yo es eliminar los archivos de la/s carpetas segun la ruta que esta en la base de datos y el id para eliminar todo un registro completo...las carpetas no las quiero eliminar.
  #7 (permalink)  
Antiguo 10/01/2011, 14:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: mensaje error unlink()

¿¿¿Dos posibles soluiones? o pura chapuseria hice

Código PHP:
<?php
include 'conectar.php';

//eliminando del servidor:

$ID $_GET[id];
$result mysql_query("SELECT * FROM detalles WHERE id=$_GET[id]"); 
while (
$row mysql_fetch_array($result)) {
    if (
$row['img_thumb'] == 'proyectos/thumb/' ) {
                        echo 
"";
                    } else {
                        
unlink($row['img_thumb']);
                    }
    if (
is_file($row['img_identidad'])) {
        
unlink($row['img_identidad']);
    } else {
        echo 
"no es un archivo";
    }
}


//eliminando de la base de datos:

mysql_query("DELETE FROM detalles WHERE id=$_GET[id] ") or DIE(mysql_error());

//Cierro la conexión
mysql_close($link);
header ('Location: cpanel.php')
?>
El primer if dice que si el campo es igual a /directorio1/directorio2/ no hace nada si es diferente elimina el archivo. Esto funciona pero no lo veo viable.

y el otro if. comprueba si lo que hay es un archivo y i es así lo elimina.
  #8 (permalink)  
Antiguo 10/01/2011, 14:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mensaje error unlink()

no entiendo porque haces las cosas de manera complicada...
Código PHP:
    if ($row['img_thumb'] == 'proyectos/thumb/' ) {
                        echo 
"";
                    } else {
                        
unlink($row['img_thumb']);
                    } 
es demasiado código, y en tu siguiente comparación esta perfecto!!

osea... que usando el sentido común debiste hacerlo así...
Código PHP:
if (is_file($row['img_thumb'])) unlink($row['img_thumb']); 
no veo porque haces tanto rollo comparando si es determinada carpeta, le das muchas vueltas, tan simple que es decir "si es un archivo, lo borro"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: mensaje, unlink
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 18:05.