Formulário PHP para salvar informações e imagens

30/03/2021

0

Olá, estou criando um formulário que adiciona novas noticias a um site. Pois bem, criei vários cases sobre o resultado do formulário submetido e cai em dois que não estou conseguindo tratar: 1º a noticia era salva mas não a imagem, ela não registra no banco nem salva na pasta indicada. Tentando resolver isso cheguei ao 2º case que é um erro geral ao salvar a noticia "Erro ao salvar a notícia, por favor volte e verifique". Se alguém puder me ajudar, estou a dias batendo cabeça e não consigo resolver. Abaixo seguem os códigos:

acaoNoticia.php
<?php
$titulo = 'Atenção!';
$mensagem = 'Houve um erro ao acessar esta página, por favor, tente novamente.';
$tipo = 'warning';
$html = '';
if(!empty($_POST['acao'])){
require_once '../../_constantes.php';
require_once RAIZ_SITE_ADMIN . '/Classes/classNoticias.php';
$classNoticias = new classNoticias();
/*
* diminuir a quantidade de arquivos dessa forma
* utiliza um arquivo desse pra cada modulo (noticas textos, ..)
* o que vai determinar o que sera feito, eh o campo acao
* o que estiver dentro do switch case, vai ser executado de acordo com o valor da acao
*/
$conn = new mysqli(HOST, USER, SENHA, BD);
switch ($_POST['acao']) {
/*
* se for uma nova noticia entra neste case
*/
case 'novaNoticia':
{
if(!empty($_POST['titulo']) && !empty($_POST['previa']) && !empty($_POST['texto'])) {
/*
* atribui os valores as variaveis. falta o upload da imagem e os outros campos
*/
$classNoticias->titulo = $_POST['titulo'];
$classNoticias->previa = $_POST['previa'];
$classNoticias->texto = $_POST['texto'];
$classNoticias->fixa = $_POST['fixa'];
$classNoticias->status = $_POST['status'];

/*
* Verifica se fez o upload da imagem
*/

$mensagemExiste = 'N';
if (!empty($_FILES['imagemDestaque'])) {
/*$extensao = pathinfo(substr($_FILES['imagemDestaque']['name'], PATHINFO_EXTENSION, -4));*/
$extensao = pathinfo($_FILES['imagemDestaque']['name'], PATHINFO_EXTENSION);
$mensagemExiste = 'S';
if (array_search(strtolower($extensao), ['jpg', 'png', 'jpeg']) == true) {
$nomeImagem = md5(date('dmYHis')) . '.' . $extensao;

if (move_uploaded_file(RAIZ_SITE . '/var/www/html/novoSiteCoopama/images/noticias' . $nomeImagem, $_FILES['imagemDestaque']['tmp_name']) == true) {
$mensagemExiste = 'V';
$classNoticias->imagem = $nomeImagem;
} else {
$mensagemExiste = 'X';
}
}


}
/*
* salva a noticia
*/
$retorno = $classNoticias->cadastrarNovaNoticia();

// retorno true ou false do insert
if ($retorno == true) {

switch ($mensagemExiste) {
case 'N':
$txt = 'Imagem não selecionada.';
break;
case 'S':
$txt = 'Noticia não gravada, confira novamente';
break;
case 'X':
$txt = 'Notícia gravada com sucesso mas houve um erro ao salvar a imagem.';
break;
case 'V':
$txt = 'Notícia gravada com sucesso.<br>Imagem armazenada com sucesso.';
break;
default:
$txt = 'Notícia gravada com sucesso mas sem imagem selecionada.';
break;
}
$tipo = 'success';
$titulo = 'Sucesso!';
$mensagem = $txt;
} else {
$tipo = 'error';
$titulo = 'Erro!';
$mensagem = 'Erro ao gravar a noticia, por favor, tente novamente.';
}

} else {
$mensagem = 'Por favor, preencha todos os campos para gravar sua notícia.';
}

break;

}


case 'listarNoticias': {
$sql = "SELECT codNoticia, titulo, previa, texto, dataPostagem, status, fixaTopo FROM noticias";
$conn = mysqliConnect();
$result = $conn->query($sql);

$registros = [];

if ($result->num_rows > 0){
while($row = $result->fetch_assoc()){
$registros[] = $row;
}
}elseif ($conn->error){
echo "Erro: " . $conn->error;
}
break;
}
case 'editarNoticias': {
break;
}
case 'localizarNoticia': {
break;
}
default:
echo "Erro: " . $conn->connect_error;
}
} else {
// caso tenha cmapo vazio, vai retornar para pagina de cadastro de noticias
$tipo = 'warning';
$titulo = 'Atenção!';
$mensagem = 'Por favor, preencha todos os campos e tente novamente.';
}

echo json_encode([
'titulo' => $titulo,
'tipo' => $tipo,
'mensagem' => $mensagem,
'html' => $html,
]);
Rafael

Rafael

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar