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.