Newsgroup: it.comp.www.php
Titolo: Directory incancellabile

Ciao a tutti,
uno script che stavo provando mi ha creato una directory di immagini che 
però adesso non riesco più ad eliminare via ftp in quanto è rimasta
impostata con permessi 755.
Riesco solo a rinominarla ma non ad eliminarla, compreso il suo contenuto.
Sapete dirmi come posso risolvere questo inconveniente?
Grazie            Giada 

 Sapete dirmi come posso risolvere questo inconveniente?
Sei stata taglia fuori.
Il proprietario del file č l'utente che ha messo in esecuzione lo script,
apache.
Prova rimuoverla utilizzando lo stesso utente.
Ossia via php con la funzione  rmdir()  e  unlink().
Ciao
Marco 


Purtroppo gli utenti sono stati cancellati prima, quindi non so come 
riprenderli.
La funzione che dici non la conosco.
Mi avevano consigliato un file cosě, ma non va (e poi i files all'interno?).
<?
$path="/home/httpd/vhosts/miosito/Gallery/public/cartella";
if(is_writeable($path))
{
unset($path);
}
else
{
chmod($path);
unset($path);
}
?> 

 riprenderli.
Prova ad eseguire questo script inserendolo in una pagina.php collocata
nella stessa directory della "directory incancellabile":
function CancellaTutto($fold) {
  $f=$fold . "/";
    if ($handleF = opendir($f)) {
        while (false !== ($NomeF = readdir($handleF) ) ) {
           if (substr($NomeF,0,1)!=".") {
           unlink ($f . $NomeF);
           }
        }
    }
    unlink ($fold); 
}
CancellaTutto("nome_directory_incancellabile");
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 riprenderli.
L'utente che mette in esecuzione gli script è apache.
Quindi prova a fare uno script php che cancelli lui tutti i file e la 
cartella.
Ciao
Marco 

 CancellaTutto("nome_directory_incancellabile");
----------------------------------
Grazie.
Con questo sono riuscita a cancellare tutti i files all'interno della 
directory incancellabile, cioè nelle sottodirectory che erano state create.
Ora però non mi si cancellano le directory vuote, compresa la principale.
Come posso fare?
Grazie ancora
Giada 

 Come posso fare?
Fai questo tentativo: cambia i permessi di tutti i file che intercetti
nella cartella. In pratica aggiungi il comando che vedi sotto, quello
col commento; e aggiungilo esattamente dove l'ho inserito io:
if (substr($NomeF,0,1)!=".") {
chmod($f . $NomeF,0755); // se non funge prova anche 0777
unlink ($f . $NomeF);
}
Ripeto, è un tentativo.


 Ripeto, è un tentativo.
------------------
Tentativo andato a buon fine con 0777.
Una alla volta sono state eliminate tutte.
Grazie infinite per il prezioso supporto.
Giada ;-) 

 }
 
Naaah! ;-)
unlink() rimuove solamente i file, non le directory!
// CODE: (non testato)
Conviene fare un test del tipo:
if(is_dir($f . $NomeF)) {
    rmdir($f . $NomeF);
} else {
    // Qui rientra tutto quello che NON è una directory.
    unlink($f . $NomeF);
}
// /CODE
Vi lascio tutto il codice di controllo errori e "debug"! :-)
Ciao!
--ev

 unlink() rimuove solamente i file, non le directory!
Porca miseria, hai ragione. Avessi testato lo script mi avrebbe
certamente segnalato un errore per ogni directory il cui tentativo di
rimozione avveniva con unlink() in luogo di rmdir(). 
Ora però va profilandosi un mistero: come cacchio avrà fatto Giada a
cancellare tutto? :-)


 cancellare tutto? :-)
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.806 / Virus Database: 548 - Release Date: 05/12/2004 

 ha fatto l'install del programma!
Eh si, infatti le directory hanno cambiato permessi, cosě le ho potute 
eliminare manualmente.
Ora perň con questa variazione mi sono confusa.
Potete gentilmente postarmela completa?
(scusate l'ignoranza)
Me la salvo, nel caso dovesse malauguratamente succedere di nuovo.
Grazie mille.    Giada