Jump to content
paikoala

erro em sistema php ao carregar uma nova imagem para uma noticia

Recommended Posts

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);
	}

} 

 

Share this post


Link to post
Share on other sites

 O primeiro erro é bem claro, a variável noticia não existe.

 

Após, o índice imagem, em $dados_upload ['imagem'] também não existe.

 

Já, o erro da linha 158 ocorre, pois, a linha 151 está errada.

Share this post


Link to post
Share on other sites

Eu corrigi as duas primeiras linhas e ele ta fazendo certinho o que deveria fazer, tirar a foto antiga do DB e colocar o nome da nova foto alem de subir a nova foto para a pasta mas a ultima continua apresentando o erro

 

Citar

A PHP Error was encountered

Severity: Warning

Message: unlink(upload/Till_Lindemann_P_R_Brown1.JPG): 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

 

Share this post


Link to post
Share on other sites

confira se a imagem está realmente salva no caminhoa defindo (upload/Till_Lindemann_P_R_Brown1.JPG).

Share this post


Link to post
Share on other sites
Em 12/09/2018 at 22:50, paikoala disse:

Eu corrigi as duas primeiras linhas e ele ta fazendo certinho o que deveria fazer, tirar a foto antiga do DB e colocar o nome da nova foto alem de subir a nova foto para a pasta mas a ultima continua apresentando o erro

 

 

Olá... Preciso de uma ajuda, como você resolveu nesse caso as duas primeiras linhas. Por favor se puder pode me responder neste e-mail monique.m09@hotmail.com. Obrigada

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By rohilario_
      Galera, boa tarde!
      Estou desenvolvendo um sistema com PHP, Mysql, JS e Bootstrap, que gerencia sorteios conforme cadastro.
      Tudo funcionando perfeitamente, contudo atualmente fazemos impressões em um layout e colocamos em uma urna, na qual acontece o sorteio manual..
      Gostaria, de alguma forma, criar uma tela de sorteio, onde ele buscaria as informações do banco (coluna cartela) e sorteasse um número de cartela qualquer com alguns efeitos de "suspense".
       
      O grande problema para mim até o momento: Fraco em JS apesar de fazer algumas "coisinhas"; Não faço ideia nem por onde começar, comecei tão somente lendo alguns efeitos com jquery.
      https://api.jquery.com/category/effects/
      Não sei como pegar as informações do banco mysql com JS.
      Sugeri o JS por conta das libs disponíveis, mas poderia ser com o proprio PHP...
       
      Agradeço as colaborações desde já!
    • By flarique
      iae pessoal, então eu estou querendo fazer o envio de um email do meu formulário por intermédio de um php que estou testando em um servidor ativo!
      este é o formulário e o meu problema é explicitamente com a passagem de informação do bootstrap 4 escrito em html para o php.
      este é o formulário.
      <!-- Formulario --> <div class="container"> <div class="row"> <div class="col-12 text-center my-5"> <h1 class="display-4 text-danger"><i class="fa fa-paper-plane text-danger" aria-hidden="true"></i>Enviar e-mail</h1> </div> </div> <div class="row justify-content-center mb-5"> <div class="col-sm-12 col-md-10 col-lg-8"> <form action="../Teste.php" method="post" role="form"> <div class="form-row"> <div class="form-group col-sm-6"> <label class="text-dark" for="InputName" >Nome completo</label> <input type="text" class="form-control" id="InputName" name="nome" required placeholder="Nome"> </div> </div> <div class="form-row"> <div class="form-group col-sm-12"> <label class="text-dark" for="inputEnd">Email</label> <input type="email" class="form-control" id="inputEnd" nome="email" required placeholder="Endereço completo"> </div> </div> <div class="form-row"> <div class="form-group col-sm-6"> <label class="text-dark" for="inputCidade">Sua cidade</label> <input type="text" class="form-control" id="inputCidade" name="cidade" required placeholder="Cidade"> </div> </div> <div class="form-row"> <div class="col-sm-12"> <button type="submit" class="btn btn-primary">Enviar</button> <a tabindex="0" class="btn btn-secondary ml-2" role="button" data-toggle="popover" data-placement="right"data-trigger="focus" title="Ajuda!" data-content="Preença todas as caixas.">Ajuda</a> </div> </div> </form> </div> </div> </div> e este é o php que deve receber as informações do formulario pelo method="post" e o action="../Teste.php" mas as variaveis do php não mudam.
      este é o php.
      <?php $name = $_POST['name']; $email = $_POST['email']; $cidade = $_POST['cidade']; $email_from = 'Teste'; $email_subject = 'Teste2'; $email_body = "Name: $name.\n". "Email: $email.\n". "Cidade: $cidade.\n"; $to = "enriboliveira@gmail.com"; $headers = "From $email_from \r\n"; $headers .= "Reply-to: $email \r\n"; echo "nome : $name"; ?>  
    • By Nipo
      Estou com dúvida se tem como fazer um código em php para fazer upload de uma imagem de um diretório fixo(em vez de abrir uma janela para fazer upload) para um diretório para o servidor.
       
    • By lulabel
      Necessito criar um quiz usando matriz, session e placar mas não consigo de jeito nenhum, já tentei procurar videos ou algum lugar explicando como posso fazer isso, mas até agora nada, fico travado. Sou iniciante no php ainda então qualquer ajuda é uma luz bem vinda.
    • By Dark_Trap000
      Ola, eu tenho um problema ao salvar ips permitidos no MySQL
      segue o codigo de salvamento
      <?php session_start(); include "conexao.php"; if (empty($_SESSION['usuario'])) { header('Location: login.php'); exit(); } $ip = $_SESSION['ip']; echo $pegar_ip = $_SERVER["REMOTE_ADDR"]; if($ip == $pegar_ip) { echo "IP Autorizado!!!"; } else if($ip == 0) { $pegar_ip = $_SERVER["REMOTE_ADDR"]; echo "IP Não Registrado!!!"; $sql = "UPDATE usuario SET creditos = $salvar WHERE usuario_id = $id"; die(); } ?> ele chega á estar tudo certo, + o problema e salvar no mysql. qual o problema ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.