Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/11/2009, 13:07
Evgeny
 
Fecha de Ingreso: noviembre-2009
Ubicación: Illes Balears
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: unlink() arroja error... pero no hay error, y funciona... :P

Workaround provisorio para que no aparezca el Warning:

Código PHP:
if($VeriCode == $CodVerif)
{
    if(
file_exists($Borrar)){$Resultado unlink($Borrar);}

De esta forma funciona. ¿Por qué? No lo sé, pero SUPONGO:

Efectivamente está ejecutando esa línea dos veces. La primera vez ve el archivo, y lo borra. Pero vuelve sobre sí misma, pero la segunda vez no lo ve. Como no lo ve (porque lo borró en la primera pasada), tira el error de archivo o directorio inexistente.

Con este código, la segunda vez el IF va a ver si existe o no, y si no existe no va a intentar volver a ejecutar el unlink(). Y no va a haber error.

Obviamente no se puede confiar así como están las cosas en la verificación de PHP, así que hay que verificar si el archivo se borró o no.

Para eso agregamos el siguiente código:

Código PHP:
if(!file_exists($Borrar))
{
    
$msg "Archivo $Borrar eliminado OK.";
}
else
{
    
$msg "ERROR: El archivo no se ha eliminado.<br>
    Llame a su soporte técnico."
;

De esta forma hacemos una verificación propia del funcionamiento del unlink() o no, y mostramos un mensaje apropiado en el caso de que hubiera fallado.

Lo he probado en mi servidor de desarrollo (local) que es un LAMP, y funciona. Y en un host contratado tambén funciona.

:)

Ahora bien... si tenemos en cuenta que en mi servidor local se presenta este tema, y en el host también, me inclino a pensar que he metido las de andar en alguna parte, pero sinceramente no encuentro dónde.

Sí que es un comportamiento interesante este.