PHP insertion in the uploaded database returning Undefined

Asked

Viewed 38 times

0

I have this file I call via ajax, however it always returns me "Undefined" not any other error clue.

<?php
    require_once 'Db.php'; 
    $sql = Database::conexao();
    date_default_timezone_set('America/Sao_Paulo');    
    $mysqldate = date('Y-m-d H:i:s');
    $errors         = array();    
    $data           = array();
        if (empty($_POST['titulo']))
            $errors['titulo'] = 'titulo é necessario.';

        if (empty($_POST['mensagem']))
            $errors['mensagem'] = 'mensagem é necessario.';
        if ( ! empty($errors)) {

            $data['sucesso'] = false;
            $data['erros']  = $errors;

        } else {

            $titulo = $_POST['titulo'];
            $mensagem = $_POST['mensagem'];

            if (empty($_FILES['imagem'])){
               $resultado = $sql->query("INSERT INTO tb_noticias(titulo,mensagem,dataenvio) VALUES(:TITULO, :MENSAGEM, :DATAENVIO)",array(
                 ":TITULO"=>$titulo,
                 ":MENSAGEM"=>$mensagem,
                 ":DATAENVIO"=>$mysqldate    
                ));
                if($resultado){
                    $data['sucesso'] = true;
                    $data['mensagem'] = 'Success!';
                }else{
                    $data['sucesso'] = false;
                    $data['mensagem'] = 'Erro ao enviar noticia!';
                }

            }else{
                $ext = strtolower(substr($_FILES['imagem']['name'],-4)); //Pegando extensão do arquivo
                $new_name = date("Y.m.d-H.i.s") . $ext; //Definindo um novo nome para o arquivo
                $dir = '../imagens/'; //Diretório para uploads
                $base_url="http://".$_SERVER['SERVER_NAME']."/imagens/";


                if (move_uploaded_file($_FILES['imagem']['tmp_name'], $dir.$new_name)) {
                    $stmt = $sql->query("INSERT INTO tb_noticias(titulo,mensagem,imagem,dataenvio,unidade,url) VALUES(:TITULO, :MENSAGEM, :IMAGEM, :DATAENVIO,:UNIDADE,:URL)",array(
                        ":TITULO"=>$titulo,
                        ":MENSAGEM"=>$mensagem,
                        ":IMAGEM"=> $base_url.$new_name,
                        ":DATAENVIO"=>$mysqldate,
                        ":UNIDADE"=>"Praia da Costa",    
                        ":URL"=>null    
                       ));
                       $stmt->execute();
                       if($resultado){
                            $data['sucesso'] = true;
                            $data['mensagem'] = 'Enviado com sucesso';
                        }else{
                            $data['sucesso'] = false;
                            $data['mensagem'] = 'Erro ao enviar noticia!';
                        }
                } else {
                    $data['sucesso'] = false;
                    $data['mensagem'] = 'Erro ao fazer upload!';
                }
            }
        }
        echo json_encode($data);
 ?>

Call Ajax

$('#btnenviarnoticia').click(function() {
            $( "#formnoticia" ).submit();
            });
            var options = { 
                url:       'db/enviarnoticia.php',
                type:      'POST' ,       
                dataType:  'json',
                uploadProgress: function(event, position, total, percentComplete) {
                    $('#progressonoticia').show();
                    $('#progressonoticia').css('width', percentComplete+'%');
                },
                success: function(data) {
                    var resdata = data;
                    if (resdata['sucesso']) {
                        location.reload();
                    }else{
                        console.log(resdata['mensagem']);
                    }
                },
                error: function(data) {
                    console.log(data);
                },
                clearForm: true 
            };
        $('#formnoticia').ajaxForm(options);
  • You only have the php code. It would be nice to put the javascript code that makes the ajax request.

  • @Juven_v I put

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.