PDA

View Full Version : [PHP 5] Cancellazione file


leox_80
20-03-2006, 12:20
Ho un problema davvero "strano" (almeno per me).

In un sistema che ho progettato ho un tasto "cancella" che mi permette di cancellare tutto c'ho che riguarda un elemento (es: file, immagini di una news e la news stessa).

Quando cancello le immagini nessun problema, quando provo a cancellare i file invece non ottengo nessun avviso dal php o apache ma il file non viene cancellato.

Ecco il codice che uso


## Costruisco il path
## In $fileDel['path_file'] c'è il nome del file (es.: file1.rar)
## In PATH_FILE_EV c'è il percorso completo al file (es.: /var/www/sito/file
## DS è il directory separator (lo slash o bacslash a seconda del sistema in cui si trova lo script)

$fileDelB = PATH_FILE_EV.DS.$fileDel['path_file'];

## Il file_exists restituisce "false"

if(file_exists($fileDelB) && !is_dir($fileDelB))
unlink($fileDelB);


Ora, anche se escludo il controllo con l'if l'unlink non mi restituisce errori ma non cancella il file.

Non è un problema di permessi della cartella perchè gli stessi permessi sono settati per la cartella delle immagini e con lo stesso metodo le immagini vengono cancellate.

Il path è corretto, ho provato anche altre combinazioni (tipo path relativo o togliendo pezzi della radice tipo "/var/")

Il "safe_mode" del server è Off

Il sistema girava sul server installato sul mio pc, ora gira su un server interno della ditta (posso fare tutte le modifiche che voglio), prima del trasferimento questa cosa funzionava.

Io ho finito le risorse, mi rimanete voi.. Aiuto

Xalexalex
20-03-2006, 20:38
Prova a mettere a inizio pagina "error_reporting(2047);" qualcosa in più ti dirà...

leox_80
21-03-2006, 09:34
L'avevo già settato nel server e ora ho anche fatto la prova qui ma non mi da nessun errore.

Sgrunt

Ho scoperto che il problema sta nella costruzione del path:
PATH_FILE_EV.DS.$fileDel['path_file']

Ma devo usare quella costante.

Se il path lo specifico completo "scritto da zero" allora funziona tutto.. capirete però che non è possibile adottare questa tecnica.

Grazie a chiunque tenti di darmi una mano :)

kk3z
21-03-2006, 11:59
L'avevo già settato nel server e ora ho anche fatto la prova qui ma non mi da nessun errore.

Sgrunt

Ho scoperto che il problema sta nella costruzione del path:
PATH_FILE_EV.DS.$fileDel['path_file']

Ma devo usare quella costante.

Se il path lo specifico completo "scritto da zero" allora funziona tutto.. capirete però che non è possibile adottare questa tecnica.

Grazie a chiunque tenti di darmi una mano :)
A questo punto si può sapere il valore di ognuno di quelle variabili + la versione concatenata? Se il problema è li...

leox_80
21-03-2006, 12:05
Questo è il codice usato:

echo "PATH_FILE EV: ".PATH_FILE_EV."<br/>DS: ".DS."<br/>fileDel[path_file]: ".$fileDel['path_file']."<br/>".$fileDelB;

E questo il risultato:

PATH_FILE EV: /home/www/html/sito/8/fileev
DS: /
fileDel[path_file]: 40_30_adjacencylist.zip
/home/www/html/sito/8/fileev/40_30_adjacencylist.zip

Quello che non funziona è sempre la cancellazione e il file exists.

leox_80
22-03-2006, 10:37
up

leox_80
22-03-2006, 14:04
Non so dove abbia preso uno qualsiasi dei simboli che toglie in trim ma con questa funzione ho risolto... mah!!!

$fileDelB = trim($fileDelB)