Ir para conteúdo
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,
]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema.
       
      Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável.
       
      O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista.

      O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD.
       
      Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo:
      ALT+A  para agregar a lista
      ALT+S para salvar a lista de itens desejados.

      Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados.

      Grato,

      Cesar
       
       
       
    • Por violin101
      Caros amigos, saudações.

      Por favor, peço desculpa em recorrer a ajuda dos amigos referente uma dúvida.

      Tenho um Sistema que estou escrevendo em PHP + Codeigniter e a minha dúvida em Codeigniter é:
      Obs.: as tabela são em MySql

      => como faço para IMPORTAR o dado de uma Tabela para outra, as tabela são:
      ___________________Tabela de Pedido     =========== para ==========>    Tabela de Entrada de Lançamentos
      itens: codigoProduto | quantidade | valorUnitario  === importar===> itens: codigoProduto | quantidade | valorUnitario
       
      Estou tentando de várias formas, mas não estou conseguindo.

      Por favor, alguém pode me dar uma ajuda, explicação ou orientação.

      Grato,
       
      Cesar
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.