$.ajax error while reading php

Asked

Viewed 91 times

1

I have the following file index.php which has 2 forms.

One of Login and one of registration

<?php

header("Content-Type: text/html; charset=utf-8");
/* Carrega as classes em tempo de execucao */

function __autoload($classe) {
    include_once "class/{$classe}.class.php";
}

$smarty = new Smarty;
$main = new Main();

if ($_POST) {

    if ($_POST['tipo'] == 'login') {
        /* carrega estrutura solucao frente ao exec() nao permitido no servidor */

        $login = addslashes($_POST['email']);
        $password = addslashes($_POST['password']);

        if (!empty($login) and ! empty($password)) {
            /* aplica salta no password */
            //$password = md5($password);

            /* verifica validacao */
            $usuario = $main->validarLogin($login, $password);

//            print_r($usuario);
//            exit;

            /* Se voce tiver permissao */
            if ($usuario['permissao']) {

                /* Joga estas variaveis para a sessao */
                $_SESSION['usuario']['nome'] = $usuario['nome'];
                $_SESSION['usuario']['empresa_cod'] = $usuario['empresa_cod'];
                $_SESSION['usuario']['usuario_cod'] = $usuario['cod'];
                $_SESSION['usuario']['email'] = $usuario['email'];

                $_SESSION["ultimoAcesso"] = date("Y-n-j H:i:s");

                /* Seta um cookie para o cliente */
                setcookie("planvet", $login, time() + 60 * 60 * 24 * 30);
                echo json_encode(array('status' => true, 'tipo' => 'permissao', 'msg' => "Autenticado com sucesso!"));
                exit;
            } elseif ($usuario['permissao'] == '' and $usuario['ativo'] == 'sim' or $usuario['perfil_cod'] != '1') {
                echo json_encode(array('status' => false, 'tipo' => 'login_incorreto', 'msg' => "Login ou Senha Incorretos!"));
                exit;
            } elseif ($usuario['ativo'] == 'nao' or $usuario['perfil_cod'] == '1') {
                echo json_encode(array('status' => false, 'tipo' => 'ativo', 'msg' => "Usuário Aguardando ativação ou desativado"));
                exit;
            }
        } else {
            echo json_encode(array('status' => false, 'tipo' => 'login_password_vazio', 'msg' => "Entre com <strong>usuário</strong> e a <strong>senha</strong>!"));
            exit;
        }
    }
    if ($_POST['tipo'] == 'cadastrar') {
        $usuario = $main->cadastrar($_POST);
        exit;
    }
}

$smarty->display('index.tpl');

And the htm index.tpl file

<!DOCTYPE html>
<html>
{include file='header.tpl'}
<body>
<div class="account-pages"></div>
<div class="clearfix"></div>
<div class="container-alt">
  <div class="row">
    <div class="col-sm-10 col-sm-offset-1">
      <div class="wrapper-page signup-signin-page">
        <div class="card-box">
          <div class="panel-heading">
            <h3 class="text-center"> Bem Vindo ao Portal do Cliente <strong class="text-custom">MetalCan</strong></h3>
          </div>
          <div class="panel-body">
            <div class="row">
              <div class="col-lg-6">
                <div class="p-20">
                  <h4><b>Entrar</b></h4>
                  <form class="form-horizontal m-t-20" id="form_usuario" name="form-login" method="POST">
                    <input type="hidden" name="tipo" value="login">
                    <div class="form-group ">
                      <div class="col-xs-12">
                        <input class="form-control" type="email" name="email" parsley-trigger="change" required name="login" placeholder="Email">
                      </div>
                    </div>
                    <div class="form-group">
                      <div class="col-xs-12">
                        <input class="form-control" type="password" required name="password" placeholder="Senha">
                      </div>
                    </div>
                    <div class="form-group ">
                      <div class="col-xs-12">
                        <div class="checkbox checkbox-primary">
                          <input id="checkbox-signin" type="checkbox">
                          <label for="checkbox-signin"> Lembrar me </label>
                        </div>
                      </div>
                    </div>
                    <div class="form-group text-right m-t-20">
                      <div class="col-xs-12">
                        <button class="btn btn-pink text-uppercase waves-effect waves-light w-sm btn-login" type="submit"> Entrar </button>
                      </div>
                    </div>
                    <div class="form-group m-t-20 m-b-0">
                      <div class="col-sm-12 text-right"> <a href="enviar-senha.php" class="text-dark"> Esqueceu sua senha?</a> </div>
                    </div>
                  </form>
                </div>
              </div>
              <div class="col-lg-6">
                <div class="p-20">
                  <h4><b>Cadastre-se</b></h4>
                  <form class="form-horizontal m-t-20" name="form-cadastro" id="form-cadastro" method="POST">
                    <input type="hidden" name="tipo" value="cadastrar">
                    <div class="form-group ">
                      <div class="col-xs-12">
                        <input class="form-control" type="email" required name="email" placeholder="Seu melhor Email">
                      </div>
                    </div>
                    <div class="form-group">
                      <div class="col-xs-12">
                        <input class="form-control" type="text" name="nome" required placeholder="Nome">
                      </div>
                    </div>
                    <div class="form-group">
                      <div class="col-xs-12">
                        <input class="form-control" type="password" required name="senha" placeholder="Senha">
                      </div>
                    </div>
                    <div class="form-group">
                      <div class="col-xs-12">
                        <div class="checkbox checkbox-primary">
                          <input id="checkbox-signup" type="checkbox" required checked="checked">
                          <label for="checkbox-signup">Aceito os <a href="#" id="termo" data-target="#termo-modal">Termos e Condições</a></label>
                        </div>
                      </div>
                    </div>
                    <div class="form-group text-right m-t-20 m-b-0">
                      <div class="col-xs-12">
                        <button class="btn btn-pink text-uppercase waves-effect waves-light w-sm btn-cadastrar" type="submit"> Cadastrar </button>
                      </div>
                    </div>
                  </form>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
<div id="termo-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title">Termos e Condições</h4>
      </div>
      <div class="modal-body"> Texto padrão </div>
    </div>
  </div>
</div>
<script>
            var resizefunc = [];
        </script> 

<!-- jQuery  --> 
<script src="assets/js/jquery.min.js"></script> 
<script src="assets/js/bootstrap.min.js"></script> 
<script src="assets/js/detect.js"></script> 
<script src="assets/js/fastclick.js"></script> 
<script src="assets/js/jquery.slimscroll.js"></script> 
<script src="assets/js/jquery.blockUI.js"></script> 
<script src="assets/js/waves.js"></script> 
<script src="assets/js/wow.min.js"></script> 
<script src="assets/js/jquery.nicescroll.js"></script> 
<script src="assets/js/jquery.scrollTo.min.js"></script> 
<script src="assets/plugins/notifyjs/dist/notify.min.js"></script> 
<script src="assets/plugins/notifications/notify-metro.js"></script> 
<script src="assets/js/jquery.core.js"></script> 
<script src="assets/js/jquery.app.js"></script> 
<script type="text/javascript" src="assets/plugins/parsleyjs/dist/parsley.js"></script> 
<script type="text/javascript">
            {literal}
                $(document).ready(function () {
                    $('form').parsley();

                    $('#form_usuario, #form-cadastro').submit(function () {
                        return false;
                    });

                    $('input[name=login]').focus();

                    $('.btn-login').click(function () {
                        $.ajax({
                            type: "POST",
                            url: "index.php",
                            data: $('#form_usuario').serializeArray(),
                            dataType: "json",
                            beforeSend: function () {

                            },
                            success: function (dados) {
                                if (dados.status) {
                                    $.Notification.notify('custom', 'top right', dados.msg);

                                    setTimeout(function () {
                                        $(location).attr("href", 'main.php');
                                    }, 2000);

                                } else {
                                    if (dados.tipo == 'login_incorreto') {
                                        $.Notification.notify('custom', 'top right', dados.msg)
                                    } else if (dados.tipo == 'login_password_vazio') {
                                        $.Notification.notify('custom', 'top right', dados.msg)
                                        $('.login-feedback').html(dados.msg).show();
                                    } else if (dados.tipo == 'ativo') {
                                        $.Notification.notify('custom', 'top right', dados.msg)
                                    }
                                    setTimeout(function () {
                                        $('.modal-footer').hide();
                                        $('.modal-body').removeClass('authing');
                                    }, 2000);
                                }
                            },
                            error: function () {
                            }
                        });
                    });

                    /*

                    $('.btn-cadastrar').click(function () {
                        $.ajax({
                            type: "POST",
                            url: "index.php",
                            data: $('#form-cadastro').serializeArray(),
                            dataType: "json",
                            beforeSend: function () {
                                alert(1);
                            },
                            success: function () {
                                alert(2);
                            },
                            error: function (dados) {
                                alert(3);
                            }
                        });     
                    });         

    */              
                $('.btn-cadastrar').click(function () {
                        var $form = jQuery('#form-cadastro'), data = $form.serializeArray();
                        $.ajax({
                            type: "POST",
                            url: "index.php",
                            data: data,
                            dataType: "json",
                            beforeSend: function () {
                            },
                            success: function (dados) {
                                if (dados.status == false) {
                                    $.Notification.notify('custom', 'top right', dados.msg)
                                } else {
                                    $.Notification.notify('custom', 'top right', 'Usuário Cadastrado com sucesso! Aguarde a confirmação')
                                }
                                if (dados.cadastro_cod != '') {
                                    $.ajax({
                                        type: "POST",
                                        url: "email/confirmacao.php",
                                        data: dados,
                                        dataType: "json",
                                        beforeSend: function () {
                                        },
                                        success: function (dados) {

                                            $.Notification.notify('custom', 'top right', 'Email Enviado com sucesso')

                                        },
                                        error: function () {
                                        }
                                    });

                                    setTimeout(function () {
                                        location.reload();
                                    }, 3000);
                                }


                            },
                            error: function () {
                            }
                        });
                    });

                    $('#termo').click(function () {
                        $('#termo-modal').modal('show')
                    });

                });
            {/literal}
        </script>
</body>
</html>

The login form works normal. But the registration occurs something peculiar: the browser returns me 200 OK but in the error clause: inserir a descrição da imagem aqui I mean, when I do:

         $('.btn-cadastrar').click(function () {
                $.ajax({
                    type: "POST",
                    url: "index.php",
                    data: $('#form-cadastro').serializeArray(),
                    dataType: "json",
                    beforeSend: function () {
                        alert(1);
                    },
                    success: function (dados) {
                        alert(2);
                    },
                    error: function (dados) {
                        alert(3);
                    }
                });     
            }); 

The return comes in error.

Where am I going wrong?

Additional:

public static function createInsert($tabela, $param, $replace = false) {

    $sql = 'INSERT INTO ' . $tabela . ' ';
    if ($replace) {
        $sql = 'REPLACE INTO ' . $tabela . ' SET ';
    }
    $cols = array();
    $rows = array();
    $fields = array();
    foreach ($param as $col => $row) {
        $cols[] = $col;
        $rows[] = (string) mysql_real_escape_string($row);
        if ($replace) {
            $fields[] = "{$col} = '" . mysql_real_escape_string($row) . "'";
        }
    }
    if (!$replace) {
        $sql .= '(' . implode(',', $cols) . ')';
        $sql .= ' VALUES ';
        $sql .= "('" . implode("','", $rows) . "')";
    } else {
        $sql .= implode(' AND ', $fields);
    }

    return $sql;
}

User class

<?php

require_once "ModelBase.class.php";

class Usuarios extends ModelBase {

    public function cadastrar($dados) {

//        print_r($dados);
//        exit;

        $permissao = self::duplicidade($dados);
        if ($permissao) {

            $dados = array_filter($dados);

            unset($dados['tipo']);

            $dados['senha'] = md5($dados['senha']);

            $query = $this->createInsert('usuarios', $dados);
//            exit;
            $result = mysql_query($query, $this->conexao) or die(mysql_error());

            echo json_encode(array('dados' => $dados));
        } else {
            echo json_encode(array('status' => false, 'msg' => 'Usuário ja Cadastrado com esse email'));
            exit;
        }
    }

    public function duplicidade($dados) {

//        print_r($dados);
//        exit;

        /* retorna ocorrencia */
        $query = "select count(cod) as total from usuarios where email = '{$dados['email']}'";
        $query .= (isset($dados['cod']) && $dados['cod'] != '0') ? " AND cod <> '{$dados['cod']}'" : '';
        #Debug
//        echo $query;
//        exit;
        $res = mysql_query($query, $this->conexao) or die(mysql_error());
        while ($result = mysql_fetch_array($res)) {
            $total = $result['total'];
        }
        return !($total > 0);
    }

    public function buscaEmail($dados) {

        /* retorna ocorrencia */
        $query = "select count(cod) as total from usuarios where email = '{$dados['email']}'";
        $res = mysql_query($query, $this->conexao) or die(mysql_error());
        while ($result = mysql_fetch_array($res)) {
            $total = $result['total'];
        }
        return $total;
    }

    public function listar() {
        $query = "select * from usuarios";
        #Debug
        #echo $query;
        #exit;
        $res = mysql_query($query, $this->conexao) or die(mysql_error());
        while ($result = mysql_fetch_array($res, MYSQL_ASSOC)) {
            $dados[] = $result;
        }
        return $dados;
    }

    public function buscar($dados) {

        $query = "select * from usuarios where nome like '%%{$dados['nomeusuario']}%%'";
        $res = mysql_query($query, $this->conexao) or die(mysql_error());
        while ($result = mysql_fetch_array($res, MYSQL_ASSOC)) {
            $dado[] = $result;
        }
        return $dado;
    }

    public function editar($dados) {
        $query = "select * from usuarios where cod = '{$dados['cod']}'";
        $res = mysql_query($query, $this->conexao) or die(mysql_error());
        while ($result = mysql_fetch_array($res, MYSQL_ASSOC)) {
            $dado = $result;
        }
        echo json_encode(array('dados' => $dado));
    }

    public function editarSenha($dados) {
        $query = "select * from usuarios where email = '{$dados['email']}' limit 1";
        $res = mysql_query($query, $this->conexao) or die(mysql_error());
        while ($result = mysql_fetch_array($res, MYSQL_ASSOC)) {
            $dado = $result;
        }
        return $dado;
    }

    public function alterar($dados) {

        $dados = array_filter($dados);
        $cod = $dados['cod'];

        unset($dados['cod']);

        unset($dados['tipo']);

        if ($dados['senha'] != '') {
            $dados['senha'] = md5($dados['senha']);
        } else {
            unset($dados['senha']);
        }

        $query = $this->createUpdate('usuarios', $dados, array('cod' => $cod));
        $result = mysql_query($query, $this->conexao) or die(mysql_error());

        echo json_encode(array('dados' => $dados));
    }

    public function alterarSenha($dados) {

        $cod = $dados['cod'];

        unset($dados['cod']);

        unset($dados['tipo']);

        $dados['senha'] = md5($dados['senha']);

        $query = $this->createUpdate('usuarios', $dados, array('senha' => $cod));

        $result = mysql_query($query, $this->conexao) or die(mysql_error());

        echo json_encode(array('dados' => $dados));
    }

    public function deletar($dados) {

        $query = "select cod from arquivos_usuarios where usuario_cod = '{$dados['cod']}' limit 1";
        $res = mysql_query($query, $this->conexao) or die(mysql_error());
        while ($result = mysql_fetch_array($res, MYSQL_ASSOC)) {
            $dado = $result['cod'];
        }

        if ($dado != '') {
            $dado = 'nao';
        } else {
            $query = "delete from usuarios where cod = '{$dados['cod']}'";
            mysql_query($query, $this->conexao);

            $dado = 'sim';
        }


        echo json_encode($dado);
    }

}
  • In the image none of the requests is the request of your ajax. In this case the request should be with the type xhr and not document. You can even filter by type xhr and see what data is being sent and including the method (POST, in this case) and the server response.

  • Incorrect datetime value: '2017-20-09 07:15:29' for column 'data_cadasto' at Row 1. And, at the bank, and Timestamp 0000-00-00 00:00:00

  • The time is coming with 1 hour late

  • even passing Timezone to sao paulo the error persists

  • How is your database Insert code? Is it not entering as string and the database is waiting for date?

  • I added the Insert in the database at the end of the question

Show 1 more comment
No answers

Browser other questions tagged

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