erro em sistema php ao carregar uma nova imagem para uma noticia
Bom dia galera, mantei um blog com um painel adm com codeigniter e estou tendo um problema.
Montei um codigo para editar post que ja tem no site e na parte de editar a imagem ele ta bugando. quando coloca para carregar ele entra na DB e tira o nome da foto antiga mas não coloca o nome da nova, ele até carrega a nova foto para o servidor mas fica dando erro e não vai.]
esse aqui em baixo seria o erro gerado no site e a baixo dele o codigo, coloquei as setas ( <--- ) com o numero das linhas que gera no erro para facilitar.
>
Citar
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: noticia
Filename: controllers/Noticia.php
Line Number: 151
Backtrace:
File: /storage/ssd4/167/1748167/public_html/application/controllers/Noticia.php
Line: 151
Function: _error_handler
File: /storage/ssd4/167/1748167/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: controllers/Noticia.php
Line Number: 151
Backtrace:
File: /storage/ssd4/167/1748167/public_html/application/controllers/Noticia.php
Line: 151
Function: _error_handler
File: /storage/ssd4/167/1748167/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Notice
Message: Undefined index: imagem
Filename: controllers/Noticia.php
Line Number: 156
Backtrace:
File: /storage/ssd4/167/1748167/public_html/application/controllers/Noticia.php
Line: 156
Function: _error_handler
File: /storage/ssd4/167/1748167/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: unlink(upload/): No such file or directory
Filename: controllers/Noticia.php
Line Number: 158
Backtrace:
File: /storage/ssd4/167/1748167/public_html/application/controllers/Noticia.php
Line: 158
Function: unlink
File: /storage/ssd4/167/1748167/public_html/index.php
Line: 315
Function: require_once
public function editar(){
//verifica se o usuario esta logado
verifica_login();
$id = $this->uri->segment(3);
if($id > 0):
//id informado, continuar com edição
if($noticias = $this->noticias->get_single($id)):
$dados['noticia'] = $noticias;
$dados_update['id'] = $noticias->id;
else:
set_msg('<p>Noticia inexistente!');
redirect('noticia/listar', 'refresh');
endif;
else:
//id não informado
set_msg('<p>Você deve escolher uma noticia para editar!</p>');
redirect('noticia/listar', 'refresh');
endif;
//regras de validação
$this->form_validation->set_rules('titulo', 'TÍTULO', 'trim|required');
$this->form_validation->set_rules('conteudo', 'CONTEÚDO', 'trim|required');
//verifica a validação
if($this->form_validation->run() == FALSE):
if(validation_errors()):
set_msg(validation_errors());
endif;
else:
$this->load->library('upload', config_upload());
if(isset($_FILES['imagem']) && $_FILES['imagem']['name'] != ''):
//foi enviada uma imagem, devo fazer o upload
if($this->upload->do_upload('imagem')):
151---> $imagem_antiga = 'upload/'.$noticia->imagem;
$dados_upload = $this->upload->data();
$dados_form = $this->input->post();
$dados_update['titulo'] = to_db($dados_form['titulo']);
$dados_update['conteudo'] = to_db($dados_form['conteudo']);
156---> $dados_update['imagem'] = $dados_upload['imagem'];
if($this->noticias->salvar($dados_update)):
158---> unlink($imagem_antiga);
set_msg('<p>Noticia alterada com sucesso!</p>');
$dados['noticia']->imagem = $dados_update['imagem'];
else:
set_msg('<p>Nenhuma alterãção foi salva!</p>');
endif;
else:
//erro de upload
$msg = '<p>São permitidos somente imagens em JPG|PNG de até 512Kb.</p>';
set_msg($msg);
endif;
else:
//não foi enviado uma imagem
$dados_form = $this->input->post();
$dados_update['titulo'] = to_db($dados_form['titulo']);
$dados_update['conteudo'] = to_db($dados_form['conteudo']);
if($this->noticias->salvar($dados_update)):
set_msg('<p>Noticia alterada com sucesso!</p>');
else:
set_msg('<p>Nenhuma alterãção foi salva!</p>');
endif;
endif;
endif;
//carrega view
$dados['titulo1'] = 'Alteração Fraturas';
$dados['h2'] = 'Alteração de Noticias';
$dados['tela'] = 'editar';
$this->load->view('painel/noticias', $dados);
}
}Discussão (4)
Carregando comentários...