Foros del Web » Programando para Internet » PHP »

Problema con función "unlink"

Estas en el tema de Problema con función "unlink" en el foro de PHP en Foros del Web. Hola a tod@s ;) Tengo un pequeño problemilla a la hora de borrar archivos (en este caso imágenes) con la función "unlink" Tengo una base ...
  #1 (permalink)  
Antiguo 03/02/2009, 12:13
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Problema con función "unlink"

Hola a tod@s ;)

Tengo un pequeño problemilla a la hora de borrar archivos (en este caso imágenes) con la función "unlink"

Tengo una base d datos en la q se inserta el nombre d la imagen y una carpeta "images" en la q se guardan las imágenes. Cuando existe la imagen dentro d la carpeta "images" todo va bien, la borra del directorio y a continuación con un "deleteSQL" la borra d la base d datos.

El problema surge cuando la imagen está en la BD pero no en la carpeta. Esto ocurre si alguien inserta 2 veces la misma imagen y luego borra alguna d ellas, borrando la imagen (q tiene el mismo nombre), pero NO los 2 registros d la BD.

No m preocupa q se renombren las imágenes ni nada x el estilo al subirlas para q no ocurra este fallo, simplemente quiero q cuando vaya a borrarlas compruebe si existe en el directorio "images", algo así como un "isset" pero para borrar las imágenes.

Este es el código:


Código PHP:
mysql_query("select * from images1 where correo = $correo AND id_images1 = $d1");
//////////////////////////////aquí borra la imagen del directorio
    
if (!($borrar1=="images/"))
        
unlink("./images/$borrar1"); 

////////aquí la borra d la BD
$deleteSQL= ("DELETE FROM images1 WHERE correo = $correo AND id_images1= $d1"); 
El valor $correo es una variable d sesión y los valores $d1 y $borrar los toma d la base d datos mediante una consulta SQL.
$d1 es una clave primaria numérica y $borrar es el nombre d la foto

Espero haberme explicado mediananmente bien. Muchísmias gracias d antemano y salu2!!
  #2 (permalink)  
Antiguo 03/02/2009, 12:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con función "unlink"

Hola pcadict0,

Revisa la función file_exists.

Saludos
  #3 (permalink)  
Antiguo 03/02/2009, 13:04
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con función "unlink"

GRACIAS GATORV!!!!!!!!!!!!!!!!!!!!!!

Eso era justo lo q necesitaba!!!

Muestro a continuación el código "reparado" x si alguien tuviera el mismo problema:

Código PHP:
    ////////borra imagen 
    
if (file_exists(!($borrar=="images/")))
        
unlink("./images/$borrar"); 

Todo lo demás lógicamente sigue igual

Gracias nuevamente y salu2
  #4 (permalink)  
Antiguo 03/02/2009, 13:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con función "unlink"

Cita:
Iniciado por pcadict0 Ver Mensaje
Muestro a continuación el código "reparado" x si alguien tuviera el mismo problema:

Código PHP:
    ////////borra imagen 
    
if (file_exists(!($borrar=="images/")))
        
unlink("./images/$borrar"); 
Ese codigo "reparado" esta mal, no lo entiendo... lo correcto es:

Código PHP:
    if (file_exists("./images/$borrar"))
        
unlink("./images/$borrar"); 
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 03/02/2009, 19:45
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con función "unlink"

Lo siento!!!

Tienes toda la razón Triby. Muchas gracias x tu aportación.
Lo q ocurría era q ya no m daba el error típico d permisos x intentar borrar una imagen q ya no estaba, y claro, al no darme el error pensaba q ya estaba todo resuelto...
Pero la realidad es q no daba el error... porque tampoco borraba la imagen!!!

Es más, no m había dado cuenta hasta el mensaje d Triby.

Muchísimas gracias x tu aportación Triby, disculpen mi torpeza

Salu2
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 02:25.