I have the following file index.php
that 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">×</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 fine. But the registration is something peculiar: the browser returns me 200 OK but in the error clause: Thatis,whenIdo:
$('.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);
}
});
});
Return is an 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;
}
Class users
<?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);
}
}