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 ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

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