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 Sapinn
      Opa galera tudo beleza? Então meu banco está me retomando um erro quando tento inserir nele que é "Dados truncados na coluna valor_produto" essa coluna era do tipo Double quando eu mudei para ela para TEXT funcionou os dados foram inseridos mas eu preciso que ela seja do tipo double. Alguém sabe como resolver????
    • By k9studio
      Olá Amigos,
      se alguem puder dar um help fico muito grato
      seguinte:
      estou criando um sistema de login com cookie
      todas as paginas fica no patch
      www/htdocs/script/
      quando logar no dominio.com.br liberar o acesso no  cliente.dominio.com.br tambem
      acesso:dominio.com.br
      ou
      quando logar no cliente.dominio.com.br liberar o acesso no dominio.com.br tambem
      acesso:cliente.dominio.com.br
      e guando deslogar quebrar conxao com os dois
      existe uma maneira de fazer isso?
       
    • By Kefatif
      Prezados boa tarde.
       
      Preciso bloquear a edição de um date input de forma que só seja possível selecionar a data através do calendário.
       
      Alguém pode me ajudar?
       
      Utilizo php, html e js.
       
      <input type="date" value="<?php echo $data ?>" name="datacoleta" class="form-control" required style="width:100%;">  
      Agradeço desde já.
    • By Kefatif
      Prezados boa tarde.
       
      Preciso bloquear a edição de um date input de forma que só seja possível selecionar a data através do calendário.
       
      Alguém pode me ajudar?
       
      Utilizo php, html e js.
       
      <input type="date" value="<?php echo $data ?>" name="datacoleta" class="form-control" required style="width:100%;">  
      Agradeço desde já.
    • By Thiago Duarte
      Eu tenho uma página que abri um alert ao clicar no link , só que nao cadastra e nem funciona o login.
       
       <div class="btn-box">          <a class="btn btn-color venobox vbox-item" data-toggle="modal" href="javascript:void(0)" onclick="openRegisterModal();">Start now Free </a>             <img src="images/seta.png"> </div>  
      <div class="modal-body">                               <div class="box">                                  <div class="content">                                     <!-- Login Form -->                                     <div class="loginBox">                                        <form id="login-modal" role="form"  method="post" action="#">                                           <input type="hidden" name="param" value="logar" />                                           <!-- Success/Alert Notification -->                                           <p class="lm-success"><i class="icon icon_check_alt2"></i> <strong>Congratulation! Login modal validation is working. Implement your code.</strong></p>                                           <p class="lm-failed"><i class="icon icon_close_alt2"></i><strong> Something went wrong! Insert correct value.</strong></p>                                           <!-- Input Fields -->                                           <input id="lm-email" class="form-control input-lg" type="text" placeholder="Email" name="email" required="">                                           <input id="lm-password" class="form-control input-lg" type="password" placeholder="Password" name="senha" required="">                                           <!-- Login Button -->                                           <input type="submit" class="btn btn-color" value="Login">                                           <!-- <button class="btn btn-color">Login</button> -->                                        </form>                                     </div>                                     <!-- /End Login Form -->                                  </div>                               </div>                               <!-- /End Login Form Box -->                               <div class="box">                                  <!-- Signup Form -->                                  <div class="content registerBox" style="display:none;">                                     <form id="signup-modal" role="form" method="post" action="?go=cadastrar">                                        <!-- Success/Alert Notification -->                                        <p class="sm-success"><i class="icon icon_check_alt2"></i> <strong>Congratulation! Signup modal validation is working. Implement your code.</strong></p>                                        <p class="sm-failed"><i class="icon icon_close_alt2"></i><strong> Something went wrong! Insert correct value.</strong></p>                                        <!-- Input Fields -->                                        <input id="sm-email" class="form-control input-lg" type="text" placeholder="Email" name="email" required="">                                        <input id="sm-password" class="form-control input-lg" type="password" placeholder="password" name="password">                                        <input id="sm-confirm" class="form-control input-lg" type="password" placeholder="Repeat password" name="senha-confirm">                                        <!-- Signup Button -->                                        <!--  <button class="btn btn-color">Create an account</button> -->                                        <input type="submit" class="btn btn-color" value="Create an account">                                     </form>                                  </div>                                  <!-- /End Signup Form -->                               </div>                               <!-- /End Signup Form Box -->                            </div>  
      e em baixo do </html> coloquei
        <?php           $param = (empty($_POST['param'])) ? 'error' : $_POST['param'];           if($param == 'logar'){       //if($_POST['param'] == 'logar'){             $email = $_POST['email'];             $password = $_POST['password'];             $query1 = mysql_num_rows(mysql_query("SELECT * FROM usuario WHERE email = '$email' AND password = '$password'")) or die(mysql_error());             if($query1 == 1){           // print "<script>alert('logou');</script>";              print "<script>window.location.replace('dashboard/index.php');</script>";           }else{              echo "<script>alert('User and password do not match.'); history.back();</script>";           }        }        if(@$_GET['go'] == 'cadastrar'){           // $dominio_gratis = $_POST['dominio_gratis'];          $email = $_POST['email'];          $password = $_POST['password'];          $date_register = date("m-d-Y");                // if(empty($dominio_gratis)){           //     echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";           // }else          if(empty($email)){           echo "<script>alert('Fill in all the fields to register.'); history.back();</script>";            }elseif(empty($password)){           echo "<script>alert('Fill in all the fields to register.'); history.back();</script>";        }else{           $query1 = mysql_num_rows(mysql_query("SELECT * FROM usuario WHERE email = '$email'"));           if($query1 == 1){            echo "<script>alert('User already exists.'); history.back();</script>";          }else{            mysql_query("insert into usuario (email, password, date_register, plan) values ('$email','$password','$date_register', '0')");            header("Location: dashboard/dashboard.php");         }      }   }   ?>  
      Alguem pode ajudar?
×

Important Information

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