Ir para conteúdo
Fórum Script Brasil
  • 0

Rmdir não funciona


johnhey

Pergunta

Bom dia pessoal, tenho um código que uso para eliminar pasta, com JavaScript e PHP.

Quando coloco assim não funciona, ou seja, não apaga a pasta, mais também não dá nenhum erro.

<div class="excluir_album">
                              <?php
                                 if (isset($_POST['excluir_album'])) {
                                 
                                    $nome_tab = $_POST['datatable'];
									
                                    //seleciona a pasta
                                    $diretorio = '/imagens/originais/bebes/'.$nome_tab.'/';
									
								?>
								<script type="text/javascript">
								var mensagem = "<?php echo("Tem certeza que deseja eliminar o album ".$nome_tab. " ?"); ?>";
								if (confirm(mensagem)) {
									<?php
										//Remove a pasta
										rmdir('$diretorio');
                                   ?>
								}
								</script>
								<?php
								}
	                          ?>
                              &nbsp;
                  </div>

Ou assim também não funciona:

<div class="excluir_album">
                              <?php
                                 if (isset($_POST['excluir_album'])) {
                                 
                                    $nome_tab = $_POST['datatable'];
									
                                    //seleciona a pasta
                                    $diretorio = '/imagens/originais/bebes/'.$nome_tab.'/';
									
								?>
								<script type="text/javascript">
								var mensagem = "<?php echo("Tem certeza que deseja eliminar o album ".$nome_tab. " ?"); ?>";
								if (confirm(mensagem)) {
									<?php
										//Remove a pasta
										rmdir("$diretorio");
                                   ?>
								}
								</script>
								<?php
								}
	                          ?>
                              &nbsp;
                  </div>

Ou simplesmente sem aspas, também não funciona. "rmdir($diretorio);

Mas quando coloco por extenso a pasta que quero apagar, funciona.

Exemplo

<div class="excluir_album">
                              <?php
                                 if (isset($_POST['excluir_album'])) {
                                 
                                    $nome_tab = $_POST['datatable'];
									
                                    //seleciona a pasta
                                    $diretorio = '/imagens/originais/bebes/'.$nome_tab.'/';
									
								?>
								<script type="text/javascript">
								var mensagem = "<?php echo("Tem certeza que deseja eliminar o album ".$nome_tab. " ?"); ?>";
								if (confirm(mensagem)) {
									<?php
										//Remove a pasta
										rmdir('/imagens/fotos/');
                                   ?>
								}
								</script>
								<?php
								}
	                          ?>
                              &nbsp;
                  </div>

Porque não funciona com a variável?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Opa! Tranquilo?

Meu velho, o que me parece é que tu estás querendo tornar algo síncrono em assíncrono.

Bom, vamos ao problema... me diz uma coisa, o "Confirm" é executado? Deve ser...

O que está acontecendo é que essa mistura de PHP e JS, ficou meio bagunçada. Vamos lembrar que o PHP roda no server-side e o JS no client-side, portanto, o que está acontecendo é que a parte do php está rodando até antes da linha do Confirm, depois ele volta pro client e roda o JS e vem sem nada dentro do if seguinte, porque ele teria que voltar para o PHP para rodar o rmdir() que é uma função PHP, ou seja, server-side (roda no servidor) e isso não acontece da forma que está.

Das duas uma, ou tu remove diretório com o JS (nada indicado, é um saco, precisa de ActiveX, permissão no FS, bem chato) ou tu faz algo assíncrono (AJAX) para continuar usando JS + PHP.

Não é o caso, mas vou dar outra dica, quando há problemas de remoção de arquivo ou diretório, cabe ativar todos os erros no php.ini e também olhar os logs do servidor, sempre tem alguma paradinha lá ;)

Ahhh! Já ia esquecendo, cara, tenta usar variável sem aspas nenhuma quando for dentro de função. As aspas são para determinar Strings e/ou campos de funções. Colocar variáveis dentro de aspas simples o torna literal e não variável e em aspas duplas, leva o processamento nas alturas (mas deve ser feito somente quando necessário).

Espero ter ajudado.

Grande agraço!

 

Editado por lemissel
Esquece de falar as "aspas"...
Link para o comentário
Compartilhar em outros sites

  • 0

De nada. Estamos aqui pra isso heheh

Tem sim meu velho. Podes trabalhar diretamente com o AJAX na sua forma "pura" usando objetos em JS ou usando frameworks como jQuery por exemplo. (Dica: com o jQuery é mais rápido e fácil, além de funcionar da mesma forma, ele faz todo o trabalho sujo pra ti hehehe).

 

AJAX "Puro"

http://www.linhadecodigo.com.br/artigo/3500/fazendo-uma-requisicao-em-ajax-sem-uso-de-plugins.aspx

 

AJAX pelo jQuery

https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjK4LfLnIfOAhWDhZAKHVryB2sQFgghMAA&url=https%3A%2F%2Fapi.jquery.com%2Fjquery.post%2F&usg=AFQjCNEyR2tjEq7WFf5tBa3TQl24BKk4XA

https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0ahUKEwjx6O7WnIfOAhVKgpAKHdasAPYQFgg7MAM&url=http%3A%2F%2Fwww.w3schools.com%2Fjquery%2Fajax_post.asp&usg=AFQjCNFgtr86Vts1APWGJp93utw3Kgt27g&bvm=bv.127521224,d.Y2I

http://wbruno.com.br/ajax/enviar-formulario-para-php-sem-refresh-jquery-ajax/

 

Vai sem medo que é tranquilão!

 

Havendo qualquer dúvida, prende o grito que te ajudamos.

Abraço!

 

Link para o comentário
Compartilhar em outros sites

  • 0

Acabei por fazer diferente, mais continua a não resultar.

o rmdir, unlink e drop table não funciona.

<?php
 			//Conexão com o Banco de Dado
 			include 'connect.php';
 			if (!$conexao) {
					die('Não foi possí­vel conectar: ' . mysql_error()); //Exibe o erro por não conectar
					}
					//Conexão bem sucedida seleciona o BD
				$db_selected 		= mysql_select_db('bd_reborn', $conexao);
 
 $id = $_GET['id'];

 // Monta consulta MySQL, para buscar nome da foto
			$sql = "SELECT * FROM bebes WHERE registo='$id' ORDER BY `registo` DESC";
			// Executa a consulta
			$query = mysql_query($sql)or die(mysql_error());
			
 // Começa a exibição dos resultados
			while ($resultado = mysql_fetch_assoc($query)) {
			  $id = $resultado['Registo'];
			  $nome = $resultado['nome'];
			  $foto = $resultado['foto'];
			  
			  $eliminar = mysql_query("DELETE FROM bebes WHERE registo= '$id'");
			  
			  $eliminar_tb = mysql_query("DROP TABLE'.$nome'");
	
	$diretorio = "imagens/originais/bebes/'.$nome.'/";
	
	rmdir($diretorio);
	
	unlink("/imagens/miniatura/bebes/".$foto);		
	}

 if ($eliminar =='') {
 	echo"<script>alert('Album eliminado com sucesso!');history.back();</script>";
 }else {
 	echo"<script>alert('Erro ao eliminar, por favor tente mais tarde.');history.back();</script>";
 }

 

Link para o comentário
Compartilhar em outros sites

  • 0

fica aqui o código a funcionar.

<?php
 			//Conexão com o Banco de Dado
 			include 'connect.php';
 			if (!$conexao) {
					die('Não foi possí­vel conectar: ' . mysql_error()); //Exibe o erro por não conectar
					}
					//Conexão bem sucedida seleciona o BD
				$db_selected 		= mysql_select_db('bd_reborn', $conexao);
 
 $id = $_GET['id'];

 // Monta consulta MySQL, para buscar nome da foto
			$sql = "SELECT * FROM bebes WHERE registo='$id' ORDER BY `registo` DESC";
			// Executa a consulta
			$query = mysql_query($sql)or die(mysql_error());
			
 // Começa a exibição dos resultados
			while ($resultado = mysql_fetch_assoc($query)) {
			  $id = $resultado['Registo'];
			  $nome = $resultado['nome'];
			  $foto = $resultado['foto'];
			  
			  $eliminar = mysql_query("DELETE FROM bebes WHERE registo= '$id'");
			  
			  $eliminar_tb = mysql_query("DROP TABLE $nome");
	
	$diretorio = "imagens/originais/bebes/$nome/";
	
	rmdir($diretorio);
	
	unlink("imagens/miniatura/bebes/$foto");		
	
	}

 if ($eliminar =='') {
 	echo"<script>alert('Erro ao eliminar, por favor tente mais tarde.');history.back();</script>";
 }else {
 	echo"<script>alert('Album eliminado com sucesso!');history.back();</script>";
 }

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...