Boa noite galera!
Amigos é o seguinte eu tenho um arquivo javascript que cria um objeto para conexao com uma determinada página php, só que acontece o seguinte problema, por exemplo eu gravo um usuário e dai aparece a mensagem como programado "Dados salvos", dai faço novamente a mesma coisa, com os mesmos dados e aparece a mensagem "Dados não salvos", até ai tudo certo, tudo dentro do esperado, pois o campo de email salvo no SGBD é definido como UNIQUE, só que por exemplo quando mudo apenas o email ele aparece a mensagem "Dados não salvos" e logo em seguida aparece a mensagem "Dados salvos" e é neste ponto que a programação não se encaixa, pois aparecem as duas mensagens a última exibida e logo após a mensagem correta, o que pode estar acontecendo pessoal? E também às vezes na primeira vez aparece "Dados não salvos" e depois "Dados salvos"...
Alguém poderia me dar uma mão?
Desde já agradeço a todos que tentarem ajudar!
Códigos:
Formulário:
<!DOCTYPE>
<html>
<head>
<?php
include_once "cabecalho.php";
if(isset($_SESSION["login"])){
header("Location: http://localhost/mapa.php");
}
?>
</head>
<body id="cadastro">
<?php include_once "navegacao.php" ?>
<div class="section">
<div class="container">
<div class="row">
<div class="col-md-5">
<form role="form" id="criar" name="frmCriar">
<h3>Criação da Conta</h3>
<div class="form-group">
<label class="control-label">Nome</label>
<input class="form-control" placeholder="Nome" id="nome" name="nome" type="text" maxlength="50">
<div class="alert alert-gold-warning" role="alert" id="aviso_nome" hidden>Nome é necessário!</div>
</div>
<div class="form-group">
<label class="control-label" for="exampleInputEmail1">Endereço de Email</label>
<input class="form-control email" placeholder="Email" id="email" name="email" type="email" maxlength="50">
<div class="alert alert-gold-warning" role="alert" id="aviso_email" hidden>Email é necessário!</div>
</div>
<div class="form-group">
<label class="control-label" for="exampleInputPassword1">Senha Desejada</label>
<input class="form-control" placeholder="Senha Desejada" id="senha" name="senha" type="password" maxlength="50">
<div class="alert alert-gold-warning" role="alert" id="aviso_senha" hidden>Senha é necessária!</div>
</div>
<button type="submit" class="btn btn-gold" id="bCriar">Criar Conta</button>
<div id="mensagem" hidden></div>
</form>
</div>
<div class="col-md-2 hidden-sm hidden-xs">
<img src="imagens\png\barraDourada_40x400.png" class="center-block img-responsive">
</div>
<div class="col-md-5">
<form role="form" method="post" action="logar.php" id="logar" name="frmLogar">
<h3>Logar em Conta Existente</h3>
<div class="form-group">
<label class="control-label" for="exampleInputEmail1">Endereço de Email</label>
<input class="form-control email" id="email1" name="emaill" placeholder="Email" type="email" maxlength="50">
<div class="alert alert-gold-warning" role="alert" id="aviso_email1">Email é necessário para logar!</div>
</div>
<div class="form-group">
<label class="control-label" for="exampleInputPassword1">Senha</label>
<input class="form-control" id="senha1" name="senhal" placeholder="Senha" type="password" maxlength="50">
<div class="alert alert-gold-warning" role="alert" id="aviso_senha1">Senha é necessária para logar!</div>
</div>
<button type="submit" class="btn btn-gold" id="bLogar">Logar</button>
<a id="esqueceu" href="#" data-toggle="popover" data-content="<p class='corpo-popover text-center'>Preencha o Campo Email e <br> Clique neste Link!</p>" title="<p class='cabecalho-popover text-center'>Informação</p>" onclick="window.open('recuperar_senha.php?email=' + document.getElementById('email1').value)">Esqueci minha senha.</a>
</form>
</div>
</div>
</div>
</div>
<?php include "rodape.php"; ?>
<script type="text/javascript" src="script/cadastro_v2.js">
</script>
</body>
</html>
cadastro_v2.js
$(function(){
$(document).ready(function () {
function validarEmail(email) {
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email)) {
return false;
}
else {
return true;
}
}
//Matriz de elementos input
var array = ["nome", "email", "senha"];
//Função que procura aviso para mostrar ou ocultar, coforme parametro: atributo e visibilidade
var display = function () {
var valido;
var num = array.length;
for (var i = 0; i < array.length; i++) {
var atributo = "#aviso_"+array[i];
var campo = "#"+array[i];
// alert($(campo).val());
if ($(campo).val() == ""){
$(atributo).css("display", "block");
$(campo).focus();
$(atributo).delay(1000).slideUp();
break; //para no primeiro elemento vazio e da a mensagem, no segundo e assim por diante, evitando que todos sejam mostrados
//ao mesmo tempo, apenas indicando os vazios no momento correto
}
if (num == i+1){
valido = validarEmail($("#email").val());
if(valido){
$(atributo).css("display", "none");
gravarDados();
$("#mensagem").delay(500).slideDown();
$("#mensagem").delay(4000).fadeOut(1000);
}else{
alert("invalido");
//$("#messagem").delay(200).fadeToggle(1000);
}
}
}
}//Fim da função display
//seta o foco no elemento com id nome
$("#nome").focus();
$("#bCriar").click(function(e){
e.preventDefault();
display();
});
function gravarDados() {
var nome = document.getElementById("nome").value;
var email = document.getElementById("email").value;
var senha = document.getElementById("senha").value;
var xmlhttp;
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
} else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if(this.readyState == 4 && this.status == 200) {
document.getElementById("mensagem").innerHTML = this.responseText;
}
};
xmlhttp.open("POST","criar_login.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("nome="+nome+"&email="+email+"&senha="+senha);
}
$('[data-toggle="popover"]').popover({
container: "#esqueceu",
placement: "bottom",
html: true,
delay: 0,
animation: false,
trigger: "hover"
});
}); //Fim $(document).ready
var permitidos = " qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
//Javascript sem JQUERY
//Permite ao usuario digitar apenas letras
document.getElementById("nome").onkeypress = function(e) {
var chr = String.fromCharCode(e.which);
var codigo = e.which;
//além da caracteres permitidos, permite o tab e o backspace
if ((permitidos.indexOf(chr) < 0) && (codigo != 0) && (codigo != 8))
return false;
};
var fnaoPermitidos = function(e) {
var naoPermitidos = ":*/|\\?<>\" ";
var chr = String.fromCharCode(e.which);
//além da caracteres permitidos, permite o tab e o backspace
if (naoPermitidos.indexOf(chr) < 0) {
return true;
}else {
return false;
}
};
document.getElementById("email").onkeypress = fnaoPermitidos;
document.getElementById("email1").onkeypress = fnaoPermitidos;
});
criar_login.php
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
//include "cabecalho.php";
//include "navegacao.php";
include_once "mensagem.php";
include "conexao.php";
include "aleatorio.php";
$nome = $_POST["nome"];
$login = $_POST["email"];
$senha = $_POST["senha"];
$codigo = gerarAleatorio();
$data = date("Y-m-d");
$diretorio = '/var/www/html/anuncios/' . $login;
function limpar(){
$nome = "";
$email = "";
$senha = "";
$codigo = "";
$data = "";
}
if(!empty($nome)){
if(!empty($login)){
if(!empty($senha)){
//criptografa a senha usando um salt automatico
$senha = password_hash($senha, PASSWORD_DEFAULT);
//pega instancia do sgbd
$db = DataBase::getInstance();
$stmt = $db->prepare("INSERT INTO tb_usuarios (nm_usuario, lg_usuario, pas_usuario, id_ativacao, dt_cadastro) VALUES (?,?,?,?,?)");
$stmt->bind_param("sssis",$nome,$login,$senha,$codigo,$data);
$executou = $stmt-> execute();
$stmt->close();
if($executou){
include "class.email.php";
$email = new Email();
$email->enviarConfirmar($login);
echo suce_mensagem("Dados salvos");
//var_dump($executou);
}
else{
echo erro_mensagem("Dados não salvos");
// var_dump($executou);
}
/* if(!file_exists($diretorio)){
mkdir($diretorio,0777,true);
chmod($diretorio,0777);
}//fim file_exists*/
/*suce_mensagem('Cadastro Efetuado com Sucesso! <br>Você Receberá um Email para que possa validar o cadastro! <br>Obrigado por se Cadastrar!');*/
//retornarConexao()->close();
} else {
//Senha vazia
}
} else {
//Login Vazio
}
} else {
//Nome Vazio
}
?>