Estou desenvolvendo um sistema de gerenciamento de arquivos em PHP.
No código a seguir, quando a pessoa dá um comando para exclusão de uma pasta, o código analiza se a pasta está vázia, excluindo-a, ou, caso encontre arquivos nela, retorna uma mensagem de qe o usuário precisa excluir o conteúdo dela primeiro:
[codebox]if(!empty($_GET["action"]))
if($_GET["action"] == "del_folder")
{
$foldername = $_GET["name"];
if(file_exists($foldername."/")){ //Verifica se a pasta existe
$openfolder = opendir($foldername); //Abre a pasta
while($files = readdir($openfolder)) {
if(is_dir($foldername."/".$filename) && ! ($files == "." || $files == "..")){ //Abre pastas
@rmdir($foldername."/".$files) or $erro = 1;
}else if(is_file($foldername."/".$filename) && ! ($files == "." || $files == "..")){ //Abre arquivos
@unlink($foldername."/".$files) or $erro = 1;
}
if($erro == "1"){
echo display_error_message("<div align='center'>Esta pasta contém subpastas e/ou arquivos<br>Exclua primeiro seu conteúdo</div>");
}
}
closedir($openfolder); //Fecha a pasta
@rmdir($foldername);
}else{
echo display_error_message("<div align='center'>Esta pasta não existe ou já foi excluída</div>");
}
}[/codebox]
meu problema é que ele está retornando um "echo" pra cada arquivo ou subpasta encontrado. Logo, se houver um arquivo dentro, ele retorna 1 único aviso (conforme deveria ser), mas se tiverem 10, aparecem 10 avisos abaixo um do outro...
imagino que deva ser simples mas nunca trabalhei nesta parte... Como fazer pra que este aviso seja mostrado apenas uma vez?
obs: eu preciso que o aviso seja dado através de "echo", não pode ser "or die", pois este para o carregamento da página e não me oferece o retorno da mensagem de erro dentro de meu template, como é o caso do "echo" que envia o erro para a variável "display_error_message"...
Desde já agradeço a ajuda!!
Forte abraço!
Edição feita por: gabsbs, 29/03/2009, 17:20.