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 rafa-martin
      Boa tarde. Gostaria de saber como faço para que o usuário volte para a página que estava após fazer novo login.
       
      Por exemplo, o usuário depois de logado estava na pagina https://site.com.br/curso/2 e saiu fazendo logout. Após ele logar novamente, como redireciono esse usuário para a página que ele estava (https://site.com.br/curso/2)?
    • By Sapinn
      Fala galare, blz? Então, estou desenvolvendo um sistema de vendas e eu gostaria de saber como fazer para devolver o produto ao estoque no caso de cancelamento da venda ou na devolução.
      Por exemplo:
      Digamos que eu tenha um estoque com 10 fones de ouvido, 5 teclados e 20 pen drives.
      Então um cliente comprou 1 fone de ouvido, 1 teclado e 2 pendrive, eu já consigo ajustar o estoque para diminuir ficando:
      9 fones de ouvido, 4 teclados, 18 pen drives.
       
      Mas digamos que, por alguma razão, o cliente gostaria de devolver o pen drives e o fone de ouvido como eu faria para colocar ambos de volta ao seu respectivo estoque, ou seja ajustar os 9 fones e os 18 pen drive de volta para 10 fones e 20 pen drive??
    • By Giovanird
      Olá a todos!

      Tenho uma rotina no cron em um servidor que executa uma pagina onde é alterado o status de clientes.
      Preciso que após acessar e alterar o status do cliente, está pagina seja direcionada para uma outra pagina após uns 10 segundos.
      Executando diretamente pelo navegador a página é direcionada corretamente, quando executada pelo cron ela não direciona.
       
      No  cron estou usando o comando:
      curl -s https://www.dominio.com.br/alt.php
       
      No direcionamento coloquei um refresh javascript dentro de um header
      header( 'refresh:10; url=https://www.dominio.com.br/posalt.php?t=2');
       
      Obs.: Está pagina já roda a algum tempo no cron sem o direcionamento, agora que se fez necessário criar este direcionamento.
       

    • By danilo759
      Estou contratando um programador PHP para desenvolver um guia de programação, pago à vista.
    • By alysson122010
      Gostaria de saber como eu consigo recuperar dados do xml da seguinte forma. Tenho esse meu codigo php
       
      foreach($xml -> cadastros->exame as $item_3){  
                  $codigo = $item_3['codigo']; 
      }
       
      Que recuperar os exames desse xml:
      <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <resultados versao="20101018" origem="aol" datahora="2021-07-22 08:25:45">     <cadastros>         <pacientes>             <paciente codigo="250058718" codigo_lis="" codigo_aol="250058718" datanasc="" nome=" " sexo="M"/>         </pacientes>         <materiais>             <material codigo="856" descricao="plasma citratado"/>             <material codigo="879" descricao="sangue total EDTA"/>             <material codigo="543" descricao="soro"/>         </materiais>         <exame codigo="TSH" descricao="TSH - HORMÔNIO TIREOESTIMULANTE - Ultrassensivel" dataalteracao="21/11/2019 17:37:15">             <linhasresultado>                 <linha codigo="1240" descricao="TSH - HORMÔNIO TIREOESTIMULANTE Ultrasensivel" unidade="µUI/mL"/>             </linhasresultado>             <valorreferencia><![CDATA[0 a 3 dias: 1,100 a 15,700 µUI/mL 3 dias a 2 meses e 14 dias: 0,600 a 9,200 µUI/mL 2meses 14dias a 1ano 3meses:0,400 a 6,000 µUI/mL 1 ano e 3 meses a 6 anos: 0,400 a 5,200 µUI/mL 6 a 15 anos: 0,300 a 4,200 µUI/mL 15 a 60 anos: 0,400 a 4,300 µUI/mL 60 a 80 anos: 0,400 a 5,800 µUI/mL Superior a 80 anos: 0,400 a 6,700 µUI/mL Gestantes: Primeiro Trimestre: 0,100 a 3,600 µUI/mL Segundo Trimestre: 0,400 a 4,300 µUI/mL Terceiro Trimestre: 0,400 a 4,300 µUI/mL ]]></valorreferencia>         </exame>         <exame codigo="LIPAS" descricao="LIPASE" dataalteracao="28/03/2019 09:23:47">             <linhasresultado>                 <linha codigo="883" descricao="LIPASE" unidade="U/L"/>             </linhasresultado>             <valorreferencia><![CDATA[Inferior a 60,0 U/L]]></valorreferencia>         </exame>         <exame codigo="T4L" descricao="T4 - TIROXINA LIVRE" dataalteracao="16/04/2019 14:43:34">             <linhasresultado>                 <linha codigo="1174" descricao="T4 - TIROXINA LIVRE" unidade="ng/dL"/>             </linhasresultado>             <valorreferencia><![CDATA[0,70 a 1,80  ng/dL]]></valorreferencia>         </exame>         <exame codigo="AMILA" descricao="AMILASE TOTAL" dataalteracao="16/04/2019 12:02:51">             <linhasresultado>                 <linha codigo="83" descricao="AMILASE TOTAL" unidade="U/L"/>             </linhasresultado>             <valorreferencia><![CDATA[Até  115,0 U/L]]></valorreferencia>         </exame>         <exame codigo="FA" descricao="FOSFATASE ALCALINA" dataalteracao="15/04/2019 11:51:01">             <linhasresultado>                 <linha codigo="542" descricao="FOSFATASE ALCALINA" unidade="U/L"/>             </linhasresultado>             <valorreferencia><![CDATA[0 a 14 dias: 82 a 249 U/L 15 dias a 1 ano: 122 a 473 U/L Sexo Feminino: Feminino 1 a 9 anos: 149 a 301 U/L Feminino 10 a 12 anos: 127 a 326 U/L Feminino 13 a 14 anos: 62 a 212 U/L Feminino 15 a 16 anos: 52 a 120 U/L Feminino 17 a 18 anos: 45 a 97 U/L Adultos: 25 a 100 U/L Sexo Masculino: Masculino 1 a 9 anos: 149 a 301 U/L Masculino 10 a 12 anos: 127 a 326 U/L Masculino 13 a 14 anos: 129 a 437 U/L Masculino 15 a 16 anos: 78 a 268 U/L Masculino 17 a 18 anos: 40 a 129 U/L Adultos: 25 a 100 U/L Referência: Fontes R, Cavalari E, Vieira Neto L, et al. Alkaline phosphatase: reference interval transference from CALIPER to a pediatric Brazilian population. J Bras Patol Med Lab. 2018; 54(4): 227-31.]]></valorreferencia>         </exame>         <exame codigo="HBGLI3" descricao="HEMOGLOBINA GLICADA" dataalteracao="28/06/2021 09:26:18">             <linhasresultado>                 <linha codigo="12976" descricao="Hb SA1c - Forma estável" unidade="%"/>                 <linha codigo="16572" descricao="Glicose Média Estimada (GME)" unidade="mg/dL"/>             </linhasresultado>             <valorreferencia><![CDATA[ Hemoglobina Glicada - Hb SA1c Normal: Inferior a 5.7% Risco aumentado para Diabetes Mellitus: 5,7 a 6,4% Diabete Mellitus: Igual ou superior a 6,5% Para o diagnóstico de Diabetes Mellitus a dosagem  de HbA1c deve ser confirmada com novo exame em dia diferente,exceto se houver hiperglicemia inequívo- ca com descompensação metabólica aguda ou sintomas clássicos da doença. A Associação Americana de Diabetes recomenda como  meta para o tratamento de pacientes diabéticos re- sultados de HbA1c iguais ou inferiores a 7%.  Conforme recomendado pela American Diabetes Asso- ciation(ADA) e European Association for the Study  of Diabetes (EASD), estamos liberando cálculo da  glicose média estimada(GME). Este cálculo é obtido a partir do valor de HbA1c através de uma fórmula  matemática baseada em uma relação linear entre os  níveis de HbA1c e a glicose média sanguínea.  Ref. Diabetes Care, 2014; 37 (suppl 1): 81-90/Diretri- zes da Sociedade Brasileira de Diabestes/2013-2014 :9-11.]]></valorreferencia>         </exame>         <exame codigo="COAG4" descricao="COAGULOGRAMA IV" dataalteracao="06/09/2019 14:27:19">             <linhasresultado>                 <linha codigo="14811" descricao="PLAQUETAS - Contagem" unidade="/uL"/>             </linhasresultado>             <valorreferencia><![CDATA[Atividade de Protrombina: 70 a 100% RNI: 0,80 a 1,20 Ratio: Inferior a 1,25 Plaquetas: 150.000 a 450.000/uL RNI - Intervalo de Refêrencias(Alvos Terapeuticos) Recomendações do American College of Physicians, National Heart Lung and Blood Institute for Haematology.]]></valorreferencia>         </exame>     </cadastros>     <solicitacao codigo="238228701" codigo_aol="238228701" paciente="250058718">         <amostras>             <amostra codigo="0" descricao="Basal" material="856"/>             <amostra codigo="1" descricao="Basal" material="879"/>             <amostra codigo="2" descricao="Basal" material="543"/>         </amostras>         <exame codigo="FA" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico" observacao="" normal="S">             <resultado amostra="2" linharesultado="542" resultado="51,0"/>         </exame>         <exame codigo="HBGLI3" dataresultado="20/07/2021 05:48:28" metodo="Imunoensaio Turbidimétrico de Inibição " observacao="" normal="S">             <resultado amostra="1" linharesultado="12976" resultado="5,1"/>             <resultado amostra="1" linharesultado="16572" resultado="100"/>         </exame>         <exame codigo="TSH" dataresultado="20/07/2021 04:27:20" metodo="Eletroquimioluminescência" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">             <resultado amostra="2" linharesultado="1240" resultado="2,000"/>         </exame>         <exame codigo="AMILA" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico Enzimático" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">             <resultado amostra="2" linharesultado="83" resultado="83,0"/>         </exame>         <exame codigo="COAG4" dataresultado="21/07/2021 13:29:20" metodo="Coagulométrico/Sistema Automatizado" observacao="" normal="S">             <resultado amostra="0" linharesultado="14811" resultado="305000"/>         </exame>         <exame codigo="LIPAS" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico Enzimático" observacao="" normal="S">             <resultado amostra="2" linharesultado="883" resultado="47,0"/>         </exame>         <exame codigo="T4L" dataresultado="20/07/2021 04:27:20" metodo="Eletroquimioluminescência" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">             <resultado amostra="2" linharesultado="1174" resultado="1,16"/>         </exame>     </solicitacao> </resultados>  
      Até ai consegui e conseguir mostrar o valor de codigo="codigo do exame". Porém preciso fazer uma segunda consulta da parte :
       
       
      <solicitacao codigo="238228701" codigo_aol="238228701" paciente="250058718">         <amostras>             <amostra codigo="0" descricao="Basal" material="856"/>             <amostra codigo="1" descricao="Basal" material="879"/>             <amostra codigo="2" descricao="Basal" material="543"/>         </amostras>         <exame codigo="FA" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico" observacao="" normal="S">             <resultado amostra="2" linharesultado="542" resultado="51,0"/>         </exame>         <exame codigo="HBGLI3" dataresultado="20/07/2021 05:48:28" metodo="Imunoensaio Turbidimétrico de Inibição " observacao="" normal="S">             <resultado amostra="1" linharesultado="12976" resultado="5,1"/>             <resultado amostra="1" linharesultado="16572" resultado="100"/>         </exame>         <exame codigo="TSH" dataresultado="20/07/2021 04:27:20" metodo="Eletroquimioluminescência" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">             <resultado amostra="2" linharesultado="1240" resultado="2,000"/>         </exame>         <exame codigo="AMILA" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico Enzimático" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">             <resultado amostra="2" linharesultado="83" resultado="83,0"/>         </exame>         <exame codigo="COAG4" dataresultado="21/07/2021 13:29:20" metodo="Coagulométrico/Sistema Automatizado" observacao="" normal="S">             <resultado amostra="0" linharesultado="14811" resultado="305000"/>         </exame>         <exame codigo="LIPAS" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico Enzimático" observacao="" normal="S">             <resultado amostra="2" linharesultado="883" resultado="47,0"/>         </exame>         <exame codigo="T4L" dataresultado="20/07/2021 04:27:20" metodo="Eletroquimioluminescência" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">             <resultado amostra="2" linharesultado="1174" resultado="1,16"/>         </exame>     </solicitacao>  
      Onde eu consiga pegar o codigo que recuperei acima e liste os resultados da parte de solicitacao referente ao codigo="codigo do exame que eu listei a cima" mas nao to conseguindo fazer. Como eu posso fazer isso?
×

Important Information

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