Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jorge Emanoel

Deletando Imagens do Servidor

Recommended Posts

Olá, sou novo aqui (meu primeiro post) e estou com um problema.

 

No meu Banco de Dados, crei uma tabela chamada "notícias". Nela tem as seguintes colunas:

  • titulo
  • conteudo
  • id
  • ativa
  • imgdesc
  • descricao

Estes dois em negrito guardam o diretório da imagem e a sua descrição respectivamente.

 

Devo ressaltar que o sistema não foi feito por mim, ou seja, eu dei uma pequena adaptada. O meu problema é que, quando dou unlink diz que não pode converter para string a variável.

_____________________________________________________________________________________________________________

abaixo está a parte onde deleto os dados da notícia

$titulo = $_POST["title"];
mysqli_query($con,"DELETE FROM noticias WHERE titulo = '$titulo'") or die(mysqli_error($link));

Eu tentei fazer o seguinte:

$nsq = "SELECT * FROM `noticias` WHERE titulo = '$titulo'";
$resul = $MySQLi->query($nsq) OR trigger_error($MySQLi->error, E_USER_ERROR);
$noticia = $resul->fetch_object();

$img = $noticia->imgdesc;

unlink($img);

Onde "$MySQLi" é uma variável definida em um arquivo apenas para conexão com o Banco de Dados e "$titulo" é dada por um formulário onde pego pelo método POST.

$MySQL = array(
  'servidor' => '127.0.0.1',  // Endereço do servidor
  'usuario' => 'user',    // Usuário
  'senha' => 'senha',        // Senha
  'banco' => 'bd'    // Nome do banco de dados
);
$MySQLi = new MySQLi($MySQL['servidor'], $MySQL['usuario'], $MySQL['senha'], $MySQL['banco']);
// Verifica se ocorreu um erro e exibe a mensagem de erro
if (mysqli_connect_errno())
    trigger_error(mysqli_connect_error(), E_USER_ERROR);

?>

Eu uso o EeasyPHP DevServer 14.1 VC11.

 

Resumindo: quero apagar um arquivo do servidor, utilizando o diretório salvo no Banco de Dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro não é no unlink. Está relacionado a objetos

Você está usando como objeto uma variável que não o é.

É o mesmo problema que descrevo aqui: http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/#call_member_func

 

Qual é a linha 24 do arquivo delet.php?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Removi a linha 24 e adocionei esta. Resultado:

object(stdClass)#4 (7) { ["id"]=> string(1) "2" ["titulo"]=> string(3) "BF4" ["conteudo"]=> string(949) "

a notícia que eu criei apareceu e depois...

" ["ativa"]=> string(1) "1" ["registro"]=> string(19) "2015-08-26 17:08:14" ["imgdesc"]=> string(24) "_descricoes/download.jpg" ["descricao"]=> string(25) "BF4 O melhor FPS que tem!" } 

Foi isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que estranho...

 

Se $noticia é um objeto stdClass e possui a propriedade imgdesc, $noticia->imgdesc não deveria gerar erro.

 

Tente remover o var_dump e colocar isto:

 

$img = $noticia->imgdesc;
var_dump( $img );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui :D

 

Usei o seguinte código:

$img = $noticia->imgdesc;
unlink((string)$img);

Eu tinha feito a mesma coisa anteriormente e não funcionou '-'. Mas, de qualquer forma, MUITO obrigado pela atenção e pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.