Jump to content
rafaelpereirap

Formulário php erro ao fazer o registro no banco e salvar imagem na pasta

Recommended Posts

Olá, venho pedir ajuda. Estou fazendo um painel admin e no módulo de notícias criei um formulário pra inserir a nova notícia com um campo para inserir a imagem. Criei vários cases para me mostrar se foi feito ou não o registro e agora está dando uma das mensagens do case que não registrou a notícia e não salva a imagem na página indicada. Se puderem me ajudar com esse problema fico agradecido. Seguem os códigos: 

<?php
class connectMysql
{

    private $host = 'localhost';
    private $user = 'root';
    private $password = 'Be15se90@';//'admin';
    private $banco = 'siteNovoCoopama';
    private $mysqli = '';
    private $insertId = '';

    public function __construct(){

    }

    private function mysqlConnect()
    {
        $this->mysqli = new mysqli($this->host, $this->user, $this->password, $this->banco);
        if (mysqli_connect_error()) {
            die('FATAL ERROR: Can not connect to SQL Server.');
            exit();
        }
    }


    public function executeQuery($query)
    {
        $this->mysqlConnect();
       // $query = mysqli_real_escape_string($this->mysqli, $query);
        $this->result = $this->mysqli->query($query);
        //$this->insertId = mysqli_insert_id();
        $this->mysqlClose();
        return $this->result;
    }

    public function mysqlClose()
    {
        $this->mysqli->close();
    }

    /*
     * vai remover caso tente um sql injection
     *
     */
    public function limparString($sql)
    {

        $sql = addslashes($sql);
        return $sql;
    }

}

noticiaNovo.php

<?php
include ($_SERVER['DOCUMENT_ROOT'] . '/_constantes.php');
//include (RAIZ_SITE . '/protecao.php');

require_once  $_SERVER['DOCUMENT_ROOT'] . '/connectMysql.php';
//include_once ($paths['Controller'] . 'NoticiasController.php');
//include 'Controller/NoticiasController.php';


/*
 * uma dica... esse eh o form pra cadastrar noticias, correto?
 * isso mesmo, na verdade eu fiz a chamada de inserção e as outras funções no DAO mas não to conseguindo chamar ele, está gerando erro
 * ai ia tentar dessa maneira para ver se inseria .
 * mesmo que faca desse jeito, nunca coloque o insert na mesma pagina do form pq você tem que submeter a pagina pra ela mesma com o form carregado
 * e se a pessoa ficar dando f5, vai ficar cadastrando a mesma noticia qtas vezes ela atualizar a pagina
 * se quiser fazer dessa forma, sem o DAO, cria uma nova pagina  para submeter o form e depois, redireciona para a pagina da noticia
 * entendue?
 * criar tipo um validar.php né?
 * mas queria aprender dessa maneira, orientada, uma puxando a outra
 * bora fazer rsss
 * bora lá kkkkk
 * as chamadas no DAO ta certo?
 */

?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Coopama | Admin</title>
    <link rel="shortcut icon" href="/admin/dist/img/favicon.png">

  <!-- Google Font: Source Sans Pro -->
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
  <!-- Font Awesome -->
  <link rel="stylesheet" href="<?=HOST_ADMIN?>/plugins/fontawesome-free/css/all.min.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="<?=HOST_ADMIN?>/dist/css/adminlte.min.css">
  <!-- summernote -->
  <link rel="stylesheet" href="<?=HOST_ADMIN?>/plugins/summernote/summernote-bs4.min.css">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body class="hold-transition sidebar-mini">
<div class="wrapper">
  <!-- Navbar -->
  <nav class="main-header navbar navbar-expand navbar-white navbar-light">
    <!-- Left navbar links -->
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a>
      </li>
      <li class="nav-item d-none d-sm-inline-block">
        <a href="home.php" class="nav-link">Home</a>
      </li>

      <!--<li class="float float-sm-right">
        <a href="#" class="nav-link float-right">Contato</a>
      </li>-->

    </ul>

  </nav>
</div>


  <!-- Main Sidebar Container -->
  <aside class="main-sidebar sidebar-dark-primary elevation-4">
    <!-- Brand Logo -->
    <a href="home.php" class="brand-link">
      <img src="dist/img/logo-quadrada-transparente.png" alt="Coopama" class="brand-image img-circle elevation-3" style="opacity: .8">
      <span class="brand-text font-weight-light">Coopama</span>
    </a>

    <!-- Sidebar -->
    <div class="sidebar">
      <!-- Sidebar user (optional) -->
      <div class="user-panel mt-3 pb-3 mb-3 d-flex">
        <div class="image">
          <img src="dist/img/avatar5.png" class="img-circle elevation-2" alt="User Image">
        </div>
        <div class="info">
          <a href="#" class="d-block"><?php echo $_SESSION['nome'];?></a>
        </div>
      </div>


      <!-- Sidebar Menu -->
        <nav class="mt-2">
            <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">

                <li class="nav-item">
                    <a href="#" class="nav-link">
                        <i class="fas fa-newspaper nav-icon"></i>
                        <p>
                            Noticias
                            <i class="fas fa-angle-left right"></i>
                            <span class="right badge badge-danger">News</span>
                        </p>
                    </a>
                    <ul class="nav nav-treeview">
                        <li class="nav-item">
                            <a href="#" class="nav-link">
                                <i class="far fa-newspaper fa-xs nav-icon"></i>
                                <p>
                                    Noticias Coopama
                                    <i class="fas fa-angle-left right"></i>
                                </p>
                            </a>
                            <ul class="nav nav-treeview">
                                <li class="nav-item">
                                    <a href="noticiaNovo.php" class="nav-link">
                                        <i class="fas fa-plus nav-icon"></i>
                                        <p>Inserir uma nova</p>
                                    </a>
                                </li>
                            </ul>
                            <ul class="nav nav-treeview">
                                <li class="nav-item">
                                    <a href="listaNoticia.php" class="nav-link">
                                        <i class="fas fa-list nav-icon"></i>
                                        <p>Listar Todas</p>
                                    </a>
                                </li>
                            </ul>
                        </li>
                    </ul>

                    <ul class="nav nav-treeview">
                        <li class="nav-item">
                            <a href="#" class="nav-link">
                                <i class="fas fa-journal-whills fa-xs nav-icon"></i>
                                <p>
                                    Coopama Informa
                                    <i class="fas fa-angle-left right"></i>
                                </p>
                            </a>
                            <ul class="nav nav-treeview">
                                <li class="nav-item">
                                    <a href="#" class="nav-link">
                                        <i class="fas fa-plus nav-icon"></i>
                                        <p>Inserir uma nova</p>
                                    </a>
                                </li>
                            </ul>
                            <ul class="nav nav-treeview">
                                <li class="nav-item">
                                    <a href="#" class="nav-link">
                                        <i class="fas fa-list nav-icon"></i>
                                        <p>Listar Todas</p>
                                    </a>
                                </li>
                            </ul>
                        </li>
                    </ul>
                    <ul class="nav nav-treeview">
                        <li class="nav-item">
                            <a href="#" class="nav-link">
                                <i class="fas fa-ethernet fa-xs nav-icon"></i>
                                <p>
                                    Coopama Informa - Web
                                    <i class="fas fa-angle-left right"></i>
                                </p>
                            </a>
                            <ul class="nav nav-treeview">
                                <li class="nav-item">
                                    <a href="#" class="nav-link">
                                        <i class="fas fa-plus nav-icon"></i>
                                        <p>Inserir uma nova</p>
                                    </a>
                                </li>
                            </ul>
                            <ul class="nav nav-treeview">
                                <li class="nav-item">
                                    <a href="#" class="nav-link">
                                        <i class="fas fa-list nav-icon"></i>
                                        <p>Listar Todas</p>
                                    </a>
                                </li>
                            </ul>
                        </li>
                    </ul>
                <li class="nav-item">
                    <a href="#" class="nav-link">
                        <i class="nav-icon far fa-calendar-alt"></i>
                        <p>
                            Eventos
                            <i class="fas fa-angle-left right"></i>
                            <span class="badge badge-info right">!</span>
                        </p>
                    </a>
                    <ul class="nav nav-treeview">
                        <li class="nav-item">
                            <a href="#" class="nav-link">
                                <i class="far fa-circle nav-icon"></i>
                                <p>Feiras Coopama</p>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a href="#" class="nav-link">
                                <i class="far fa-circle nav-icon"></i>
                                <p>AGO</p>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a href="#" class="nav-link">
                                <i class="far fa-circle nav-icon"></i>
                                <p>Concurso de Café</p>
                            </a>
                        </li>
                        <!--<li class="nav-item">
                          <a href="#" class="nav-link">
                            <i class="far fa-circle nav-icon"></i>
                            <p>Calendário</p>
                          </a>
                        </li>-->
                    </ul>
                </li>
                <li class="nav-item">
                    <a href="#" class="nav-link">
                        <i class="nav-icon fas fa-columns"></i>
                        <p>
                            Banners
                        </p>
                    </a>

                <li class="nav-item">
                    <a href="#" class="nav-link">
                        <i class="nav-icon fas fa-tree"></i>
                        <p>
                            Cotação Geral
                            <i class="fas fa-angle-left right"></i>
                        </p>
                    </a>
                    <ul class="nav nav-treeview">
                        <li class="nav-item">
                            <a href="#" class="nav-link">
                                <i class="fas fa-tractor nav-icon"></i>
                                <p>Milho</p>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a href="#" class="nav-link">
                                <i class="fas fa-coffee nav-icon"></i>
                                <p>Café</p>
                            </a>
                        </li>

                    </ul>
                </li>
                <li class="nav-item">
                    <a href="#" class="nav-link">
                        <i class="nav-icon fas fa-columns"></i>
                        <p>
                            Trabalhe Conosco
                        </p>
                    </a>
                    </a>
                </li>
                <li class="nav-item">
                    <a href="#" class="nav-link">
                        <i class="nav-icon fas fa-calendar-alt"></i>
                        <p>
                            Calendario
                            <span class="badge badge-info right"></span>
                        </p>
                    </a>
                </li>
            </ul>
        </nav>
    </div>
    </div>
    <!-- /.sidebar -->
  </aside>

  <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
      <section class="content-header">
          <div class="container-fluid">
              <div class="row mb-2">
                  <div class="col-sm-6">
                      <h1>Noticias</h1>
                  </div>
          <div class="col-sm-6">
            <ol class="breadcrumb float-sm-right">
              <li class="breadcrumb-item"><a href="home.php">Home</a></li>
              <!--<li class="breadcrumb-item active"></li>-->
            </ol>
          </div>
        </div>
      </div><!-- /.container-fluid -->
    </section>

    <!-- Main content -->
    <section class="content">
      <div class="container-fluid">
          <div class="row">
          <div class="col-md-12">
          <div class="card">
              <div class="card-header">
                  <h3 class="card-title" style="width: 100%">Crie uma nova noticia</h3>
              </div>
          <!--<div id="corpoNoticia"class="row">-->
              <!--<h2 class="center" align="center" style="cursor: pointer"><u>Crie uma nova noticia</u></h2>-->
              <br style="clear: both">
              <form name="novaNoticia" id="novaNoticia" method="post" enctype="multipart/form-data" style="text-align: center">
                  <input type="hidden" name="acao" id="acao" value="novaNoticia">
                  <div class="form-row">
                      <div class="form-group col-lg-6">
                          <label for="titulo">*Titulo</label>
                          <input type="text" class="form-control" id="titulo" name="titulo" placeholder="Titulo da Noticia" required>
                      </div>
                      <div class="form-group col-md-6">
                          <label for="previa">Prévia</label>
                          <input type="text" class="form-control" id="previa" name="previa" placeholder="Prévia da Noticia">
                      </div>
                  </div>
                  <div class="form-group">
                      <label for="texto">*Texto</label>
                      <textarea class="form-control" id="texto" name="texto" placeholder="Texto da Noticia" required></textarea>
                  </div>
                  <div class="form-row">
                  <div class="file-field input-field col s12 l8">
                      <label for="imagem">Imagem Destaque</label>
                      <input type="file" class="form-control" required name="imagemDestaque" id="imagemDestaque">
                  </div>
                      <div class="form-group col-md-2">
                          <label for="data">*Data da Postagem</label>
                          <input type="date" class="form-control" name="data" id="data" required>
                      </div>
                      <div class="form-group col-md-2">
                          <label for="status" required>*Status</label>
                          <select id="status" name="status" class="form-control">
                              <option selected>Escolher...</option>
                              <option value="A">Ativa</option>
                              <option value="R">Rascunho</option>
                              <option value="D">Descartada</option>
                          </select>
                      </div>
                      <div class="form-group col-md-1">
                          <label for="fixa">*Topo?</label>
                          <select name="fixa" required id="fixa" class="form-control">
                              <option value="S">Sim</option>
                              <option value="N">Não</option>
                          </select>
                      </div>
                      <div class="form-group col-md-4" style="text-align: center; margin-top: 30px">
                          <button type="submit" id="btnSubmit" class="btn btn-group-lg" style="color: white; background-color: #0f9d58">Enviar</button>
                      </div>
                   </div>
                  <!--<hr>-->
                  <!--<button type="submit" class="btn btn-primary" style="color: white; background-color: #0f9d58; " >Enviar</button>-->
              </form>

              <br>
          </div>
          </div>
          </div>

      </div>

    </section>
      <style>
          form {
              padding-right: 10px;
              padding-left: 10px;
          }
          .form-row{
              font-weight: bold;
          }

         card-header{
             grid-template-rows: 120px 1fr 60px;
         }
         label{
             padding-left: 5px;
             padding-right: 5px;

         }
         button{
             color: #fff;
             background-color: #0f9d58;
             padding-bottom: 50px;
         }

         form > label{
             font-size: 1.0rem;
             padding-right: 55px;

         }

      </style>

  <!-- Control Sidebar -->
  <aside class="control-sidebar control-sidebar-dark">
    <!-- Control sidebar content goes here -->
  </aside>
  <!-- /.control-sidebar -->
</div>

<!-- ./wrapper -->

<!-- jQuery -->
<script src="/admin/js/jquery-3.6.0.min.js"></script>
<!-- Bootstrap 4 -->
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.1/dist/umd/popper.min.js" integrity="sha384-SR1sx49pcuLnqZUnnPwx6FCym0wLsk5JZuNx2bPPENzswTNFaQU1RDvt3wT4gWFG" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.min.js" integrity="sha384-j0CNLUeiqtyaRmlzUHCPZ+Gy5fQu0dQ6eZ/xAww941Ai1SxSY+0EQqNXNE6DZiVc" crossorigin="anonymous"></script>
<script src="//cdn.jsdelivr.net/npm/sweetalert2@10"></script>

<script>

    $(function (){
        $(".preloader").fadeOut();
        /*$.post('/processa/acaoNoticias.php',{
            acao: 'validarCadastro',
        }, function (data){
            if(data['tipo'] == 'sucess'){
                $('#btnSubimit').hide();
                Swal.fire({
                    title: data['titulo'],
                    html: data['mensagem'],
                    type: data['tipo'],
                    confirmButtonText: "Fechar"
                });
            }else {
                $('#btnSubimit').show();
            }
        },'json');*/

        $('#novaNoticia').submit (function (e){
            e.preventDefault();
            if ($('#titulo, #previa, #texto, #imagem, #data, #status, #fixa').val() != ''){
                //$('#btnSubmit').hide();
                $.ajax({
                    type: "POST",
                    url: '/admin/processa/acaoNoticias.php',
                    dataType: 'json',
                    data: new FormData($('#novaNoticia').get(0)),
                    contentType:false,
                    processData: false,
                    cache: false,
                    success: function (data){
                        if (data['tipo'] == 'success'){
                            document.getElementById('novaNoticia'). reset();
                        }
                        $('#btnSubmit').show();
                        Swal.fire({
                            title: data['titulo'],
                            html: data['mensagem'],
                            icon: data['tipo'],
                            confirmButtonText: "Fechar"
                        });
                    },
                    error: function (data){
                        $('#btnSubmit').show();
                        $('#modal-warning').addClass('hide').fadeOut(5);
                        Swal.fire({
                            title: data['titulo'],
                            html: data['mensagem'],
                            type: 'error',
                            confirmButtonText: "Fechar"
                        });
                    }
                });
            }else {
                Swal.fire({
                    title: 'Atenção',
                    type:'Info',
                    html: 'Os campos com * são obrigatorios, por favor volte e verifique se você preencheu todos.',
                    confirmButtonText: "Fechar"
                })
            }
        })
    })
    <?php
    if(!empty($_SESSION['MSG_RETORNO'])) {
        $msgRetorno = $_SESSION['MSG_RETORNO'];
        echo 'Swal.fire({
                                title: "' . $msgRetorno['titulo'] . '",
                                html: "' . $msgRetorno['mensagem'] . '",
                                type: "' . $msgRetorno['tipo'] . '",
                                confirmButtonText: "Fechar"
                            });';
        /*
         * Apos mostrar a msg de sucesso ou erro, a sessao é eliminada e nao sera mais chamada.
         */
        unset($_SESSION['MSG_RETORNO']);

    }
    ?>
</script>
</body>
</html>

classNoticias.php

<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/admin/connectMysql.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/admin/Beans/Noticias.php';


class classNoticias extends connectMysql
{
    public $titulo = '';
    public $texto = '';
    public $previa = '';
    public $imagem = '';
    public $data = '';
    public $status = '';
    public $fixa = '';
    public $codNoticia = '';


    /**
     * classNoticias constructor.
     */
    public function __construct()
    {
    }

    /**
     * @return array
     */
    public function editaNoticia()
    {
        $query = $this->executeQuery("UPDATE noticias SET titulo = '" . addslashes(utf8_decode($this->titulo)) . "',
                                                                 texto = '" . addslashes(utf8_decode($this->texto)) . "',
                                                                 previa = '" . addslashes(utf8_decode($this->previa)) . "',
                                                                 imagem = '" . $this->imagem . "',
                                                                 NOW(),
                                                                 status = '" . $this->status . "',
                                                                 fixaTopo = '" . $this->fixa . "',
                                                           WHERE codNoticia = '" . (int)$this->codNoticia . "'     
                                                                   LIMIT 1");
        if ($query == true) {
            return ['tipo' => 'sucess', 'titulo' => 'Sucesso!', 'mensagem' => 'Noticia modificada!'];
        } else {
            return ['tipo' => 'error', 'titulo' => 'Erro!', 'mensagem' => 'Erro ao fazer a edição, tente novamente'];
        }
    }

    public function listaNoticias()
    {
        $query = $this->executeQuery("SELECT *, DATE_FORMAT(dataPostagem, '%d/%m/%Y %H:%i') dtHrPostagem FROM noticias ORDER BY dataPostagem DESC");
        $return = [];
        while ($sql = $query->fetch_array()) {
            $return[] = [
                'codNoticia' => utf8_encode($sql['codNoticia']),
                'titulo' => utf8_encode($sql['titulo']),
                'texto' => utf8_encode($sql['texto']),
                'previa' => utf8_encode($sql['previa']),
                'imagemDestaque' => utf8_encode($sql['imagemDestaque']),
                'dataPostagem' => utf8_encode($sql['dtHrPostagem']),
                'status' => utf8_encode($sql['status']),
                'fixaTopo' => utf8_encode($sql['fixaTopo'])
            ];
        }
        return $return;
    }

    public function listaNoticiasByCod()
    {
        $query = $this->executeQuery("SELECT *, DATE_FORMAT(dataPostagem, '%d/%m/%Y %H:%i') dtHrPostagem FROM noticias WHERE codNoticia = " . (int)$this->codNoticia . "LIMIT 1");
        $return = [];
        while ($sql = $query->fetch_array()) {
            $return[] = [
                'codNoticia' => utf8_encode($sql['codNoticia']),
                'titulo' => utf8_encode($sql['titulo']),
                'texto' => utf8_encode($sql['texto']),
                'previa' => utf8_encode($sql['previa']),
                'imagemDestaque' => utf8_encode($sql['imagemDestaque']),
                'dataPostagem' => utf8_encode($sql['dtHrPostagem']),
                'status' => utf8_encode($sql['status']),
                'fixaTopo' => utf8_encode($sql['fixaTopo'])
            ];
        }
        return $return;
    }

    public function cadastrarNovaNoticia()
    {
        if ($this->fixa == 'S') {
            $this->executeQuery("UPDATE noticias SET fixa = 'X'");
        }
        $sql = "INSERT INTO noticias (titulo, texto, previa, imagemDestaque, dataPostagem, status, fixaTopo)
                              VALUES ('" . addslashes(utf8_decode($this->titulo)) . "',
                              '" . addslashes(utf8_decode($this->texto)) . "',
                              '" . addslashes(utf8_decode($this->previa)) . "',
                              '" . addslashes(utf8_decode($this->imagem)) . "',
                              NOW(),
                              '" . addslashes(utf8_decode($this->status)) . "',
                              '" . addslashes(utf8_decode($this->fixa)) . "')";

        return $this->executeQuery($sql);
    }
}

acaoNoticias.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
     * veja que ja chamou a classe acima e ja instanciou ela, entao nao precisa chamar mais
     * 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 marcados com * 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,
]);

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 Rizer
      Galera, estamos buscando um profissional para atuar como Desenvolvedor PHP Junior/Pleno na Rizer. Está interessado?
       
      Empresa: Rizer (www.rizer.com.br)
      Vaga: Desenvolvedor PHP Pleno
      Carga horária: 40h semanais (seg a --- / 9h-18h)
      Local de trabalho: Edf. Cosmopolitan, Paralela - Salvador/BA
       
      Buscamos um profissional que não tenha potencial somente para exercer com excelência a posição de Desenvolvedor PHP, mas também para - num futuro próximo - liderar times na sua área de expertise. Para tornar isso possível, iremos imergi-lo no mercado e no mundo de empresas de tecnologia e startups, apresentando ainda mais sobre o funcionamento de empresas como a nossa (não tão tradicionais assim) e sobre as metodologias que utilizamos para atingir nossos resultados.
       
      A Rizer cresce exponencialmente a cada dia e gostamos de fazer todos crescerem junto conosco. Por isso, além de uma excelente política de reconhecimento e promoção (algumas vezes meteórica) de funcionários, possuímos também um programa de Vesting para oferecer quotas da sociedade da empresa para membros do nosso time que se destacam.
       
      Pré-requisitos:
      Conhecimento sólido em PHP (2+ anos de experiência);
      Integração via APIs rest;
      Framework Laravel;
      Banco de dados relacional (mysql);
      Utilização de metodologias ágeis (Scrum);
      Git / gitflow.
      Phpunit;
      Boas práticas e design pattern;;
      CSS, HTML e JavaScript
       
      Interessados deverão preencher o seguinte formulário:
       
      http://bit.ly/rizer1
       
      e fazer o upload do currículo com nome “Desenvolvedor PHP Pleno - SEU NOME”
      Você se considera uma excelente pessoa e um ótimo profissional? Curtiu a vaga? Então vem trabalhar com a gente, vem!
    • By danilo759
      Tenho uma tabelinha de programas para uma rádio... está da seguinte forma.

      titulo
      data (YYYY-MM-DD)
      hora (00:00:00)

      Minha consulta, mas não retorna o programa da hora corrente. O que eu fiz de errado?
      SELECT * FROM programas WHERE data = CURDATE() AND hora = CURTIME() LIMIT 1
    • By Ro_JnR
      Estou tentando a semanas resolver um problema, consumir uma API e verificar se o campo no banco está vazio, se estiver faz insert se não faz update.
      Até aí tudo bem, agora não consigo passar do meu select para o banco, ele da erro.
       
      Segue o código:
       
      <?php

          require_once("db.class.php");
          
          $url = "https://servicodados.ibge.gov.br/api/v1/localidades/distritos";
              $ch = curl_init($url);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
              $resultado = json_decode(curl_exec($ch));
              foreach ($resultado as $cidades) {
                  $nome = $cidades->nome;
                  $stmt = $conn->prepare("SELECT name FROM cidades WHERE name=?");
                  $stmt->bind_Param(':name', $nome);
                  $stmt->execute();
                  $stmt->bind_result($resultSelect);
                  $stmt->fetch();
                  if(!$stmt->execute()){
                      print_r($stmt->errorInfo());
                  }
              } 

      ?>
       
      Código do banco:
       
      $conn = new PDO("mysql:host=localhost;dbname=exercicio", "root", "");
      //"sqlsrv:Database=dbphp7;server=localhost\SQLEXPRESS;ConnectionPooling=0", "sa", "root");
      $stmt = $conn->prepare("SELECT * FROM cidades ORDER BY nome");
      $stmt->execute();
      //fetchALL basicamente faço while do mysqli
      $results = $stmt->fetchALL(PDO::FETCH_ASSOC);
       
      Print do erro:

       
      Tenho um outro exercicio que fiz bem parecido, consumi a API de estados e inseri no banco de dados, esse funcionou normalmente.
      Alguém poderia me dar uma luz, não sei mais o que fazer.
      Era para ser simples rsrsrrs.
    • By asacap1000
      Galera me foi solicitado a criação de um servidor web, para disponibilizar serviços para os clientes. O que vocês recomendam?
      Tenho um servidor da DELL com windows 2016. Todo o desenvolvimento será em PHP, Javascript e companhia Ltda com conexão aos bancos de dados Mysql, SQL e ORACLE.
      Já temos um servidor que será desativado porém está utilizando uma versão muito antiga de PHP 5.4 e como base de instalação foi utilizado o WampServer. 
    • By asacap1000
      Galera me foi solicitado a criação de um servidor web, para disponibilizar serviços para os clientes. O que vocês recomendam?
      Tenho um servidor da DELL com windows 2016. Todo o desenvolvimento será em PHP, Javascript e companhia Ltda com conexão aos bancos de dados Mysql, SQL e ORACLE.
      Já temos um servidor que será desativado porém está utilizando uma versão muito antiga de PHP 5.4 e como base de instalação foi utilizado o WampServer. 
×

Important Information

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