Ir para conteúdo

Recommended Posts

Olá eu tenho tentado criar uma plantaforma que faça login e registro com php mysqli e ajax porém toda vez q tento fazer login ja com um usuario cadastro no banco de dados ele não funciona aparece que ta dando erro, porém não identifiquei o erro, e o registro também alguém poderia me ajudar a desenvolver?

meu arquivo valida para login;

Citar

<?php
    session_start(); 
        //Incluindo a conexão com banco de dados   
    include_once("config/conexao.php");    
    //O campo usuário e senha preenchido entra no if para validar
    
        $email = $_POST['email']; //Escapar de caracteres especiais, como aspas, prevenindo SQL injection
        $senha = $_POST['senha'];
    
if ((!$email) || (!$senha)){

echo 0;    //Responde erro
echo "Por favor, todos campos devem ser preenchidos!";

}else{


$sql = (

"SELECT * FROM clientes
WHERE email='{$email}'
AND senha='{$senha}'
AND termos='1'"

);
//$sqlquery = mysqli_query($conn, $sql);

//$login_check = mysqli_num_rows($sqlquery);

//if ($login_check > 0){

//while ($row = mysqli_fetch_array($sqlquery)){

//foreach ($row AS $key => $val){

//$$key = stripslashes( $val );

//}

$_SESSION['id'] = $id;

$sql2 = (

"UPDATE clientes SET data_ultimo_login = now()
WHERE id ='{$id}'"

);

mysqli_query ($conn, $sql2);

echo 1;    //Responde sucesso
//header("Location: ../index");

}

}else{

echo 0;    //Responde erro
echo "Você não pode logar-se! Este usuário e/ou senha não são válidos!<br />
Por favor tente novamente!";

}

}

?>

    
<!--        //Buscar na tabela usuario o usuário que corresponde com os dados digitado no formulário
        $result_usuario = "SELECT * FROM clientes WHERE email = '$email' && senha = '$senha' LIMIT 1";
        $resultado_usuario = mysqli_query($conn, $result_usuario);
        $resultado = mysqli_fetch_assoc($resultado_usuario);
        
        //Encontrado um usuario na tabela usuário com os mesmos dados digitado no formulário
        if(isset($resultado)){
            $_SESSION['uemail'] = $resultado['email'];
            //$dados = mysqli_fetch_array($conn, $result_usuario);
            //$_SESSION['uid'] = $dados['id'];
            
               //header("Location: index.php");
            //}
        //Não foi encontrado um usuario na tabela usuário com os mesmos dados digitado no formulário
        //redireciona o usuario para a página de login
        }else{    
            //Váriavel global recebendo a mensagem de erro
            $_SESSION['loginErro'] = "Usuário ou senha Inválido";
            header("Location: index.php#login");
        }
        }
?>-->

 

meu arquivo validareg.php valida o registro:

Citar

<?
//if ( isset( $_POST ) && !empty ( $_POST ) ) {
//    print_r( $_POST );
//}
    include_once("config/conexao.php");

    $unome = $_POST['nome'];
    $usobre = $_POST['sobrenome'];
    $uemail = $_POST['email'];
    $usenha = MD5($_POST['senha']);
    $ucpf = $_POST['cpf'];
    $unascimento = $_POST['nascimento'];
    //echo "$nome_usuario - $email_usuario";        
    
    $result_usuario = "INSERT INTO clientes(nome, sobrenome, email, senha, cpf, nascimento) VALUES ('$unome','$usobre','$uemail','$usenha','$ucpf','$unascimento')";
    $resultado_usuario = mysqli_query($conn, $result_usuario);
    
    if(mysqli_affected_rows($conn) != 0){
                echo '
                    <script type="text/javascript">
                        alert("Usuario cadastrado com Sucesso.");
                    </script>
                ';    
            }else{
                echo '
                    <script type="text/javascript">
                        alert("O Usuario não foi cadastrado com Sucesso.");
                    </script>
                ';    
            }
?>
                 <!--   <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/aula/cadastro.php'>-->

arquivo formulario do registro:

Citar

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<!--<script>
<!--$(function(){
<!--    $('.form').submit(function() {
    <!--    $.ajax({
        <!--    url: 'validareg.php',
            <!--type: 'POST',
        <!--    data: $('.form').serialize();
    <!--    });
<!--    });
<!--});-->
<!--$(function() {
    $(".form").submit(function() {
        var nome = $("#nome");
        var nomePost = nome.val();
        var sobrenome = $("#sobrenome");
        var sobrenomePost = sobrenome.val();
        var email = $("#email");
        var emailPost = email.val();
        var senha = $("#senha");
        var senhaPost = senha.val();    
        var cpf = $("#cpf");
        var cpfPost = cpf.val();    
        var nascimento = $("#nascimento");
        var nascimentoPost = nascimento.val();    
        $.post("validareg.php", {nome: nomePost, sobrenome: sobrenomePost, email: emailPost, senha: senhaPost, cpf: cpfPost, nascimento: nascimentoPost},
        function(data){
         $("#resposta").html(data);
         }
         , "html");
    });
});
</script>-->

<div class="content">
                                    <header class="align-center">
                                        <p>Registrando-se</p>
                                    </header>
<form id="formregister" method="post" action="">

            <label>Nome</label>
            <input type="text" id="nome" name="nome" maxlength='50' placeholder="Nome" required><br/>
            <label>Sobrenome</label>
            <input type="text" id="sobrenome" name="sobrenome" maxlength='50' placeholder="Sobrenome" required></br>
            <label>Email</label>
            <input type="email" id="email" name="email" maxlength='50' placeholder="Email" required></br>
            <label>Senha</label>
            <input type="password" id="senha" name="senha" maxlength='50' placeholder="Senha" required></br>
            <label>CPF</label>
            <input type="text" id="cpf" maxlength='11' name='cpf' placeholder="CPF" required><br/>
            <label>Data de nascimento</label>
            <input type="date" id="nascimento" name="nascimento" placeholder="19/05/2000" required><br/>                    
           </br><footer class="align-center"> <button class="button alt" type="submit">Avançar</button></footer>
        </form>
</div>

parte do arquivo de login: 

Citar

<script>        
        $(document).ready(function() {
    $("a#ajax").click(function() { // inclui todos os links com id="ajax"
        $("#ajaxcontent").load($(this).attr("href")); // carrega o conteúdo da página em HREF dentro da DIV #ajaxContent (id="ajaxContent")
        return false; // remove a ação do link para navegar até a página do HREF, pois ela já foi carregada na DIV
    });
});
</script>
            <div id="login">
        <!-- One -->
            <section id="one" class="wrapper style2">
                <div class="inner">
                    <div class="grid-style">

                        <div>
                            <div class="box" id="ajaxcontent">
                                <div class="content">
                                    <header class="align-center">
                                        <p>Entre já</p>
                                        <h2>Não sou um usúario registrado <a id="ajax" href="register.php">Registrar-se</a></h2>
                                    </header>
                                    <form id="formlogin" method="POST" action="">
            <label>Email</label>
            <input type="email" id="email" name="email" placeholder="Email" required><br/>
            <label>Senha</label>
            <input type="password" id="senha" name="senha" placeholder="Senha" required>
           </br><footer class="align-center"> <button class="button alt" type="submit">Acessar</button></footer>
        </form>
        <div id="errolog">ERRO</div>
        <div id="loginlog">Logado</div>
        <center><p style="background-color:red;border-radius:15px;width:auto;">
            <?php if(isset($_SESSION['loginErro'])){
                echo $_SESSION['loginErro'];
                unset($_SESSION['loginErro']);
            }?>
        </p></center>
        <p>
            <?php 
            if(isset($_SESSION['logindeslogado'])){
                echo $_SESSION['logindeslogado'];
                unset($_SESSION['logindeslogado']);
            }
            ?>
        </p>
        </div>
                            </div>
                        </div>

e por fim o ajaxlogin que faz a função ajax

Citar

$(document).ready(function(){
    $('#errolog').hide(); //Esconde o elemento com id errolog
    $('#loginlog').hide(); //Esconde o elemento com id loginlog
    $('#formlogin').submit(function(){     //Ao submeter formulário
        var email=$('#email').val();    //Pega valor do campo email
        var senha=$('#senha').val();    //Pega valor do campo senha
        $.ajax({            //Função AJAX
            url:"valida.php",            //Arquivo php
            type:"post",                //Método de envio
            data: "email="+email+"&senha="+senha,    //Dados
               success: function (result){            //Sucesso no AJAX
                        if(result==1){                        
                            $('#errolog').hide(1000); //Esconde o elemento com id errolog
                            $('#loginlog').show(850);        //Informa que está logado
                            $('#formlogin').hide(500);        //ESCONDE FORMULARIO DE LOGIN
                            setTimeout("document.location = 'http://am.autec.net.br/'",3100); //location.href='https://www.webcarlos.com.br/'    //Redireciona
                        }else{
                            $('#errolog').show(850);        //Informa o erro
                        }
                    }
        })
        return false;    //Evita que a página seja atualizada
    })
})

$(document).ready(function(){
    $('#formregister').submit(function(){     //Ao submeter formulário
        var nome=$('#nome').val();    //Pega valor do campo email
        var sobrenome=$('#sobrenome').val();    //Pega valor do campo usuario
        var email=$('#email').val();    //Pega valor do campo senha
        var senha=$('#senha').val();    //Pega valor do campo senha
        var cpf=$('#cpf').val();    //Pega valor do campo senha
        var nascimento=$('#nascimento').val();    //Pega valor do checkbox termos
        $.ajax({            //Função AJAX
            url:"validareg.php",            //Arquivo php
            type:"post",                //Método de envio
            data: "email="+email+"&senha="+senha,    //Dados
               success: function (result){            //Sucesso no AJAX
                        if(result==1){                        
                            $('#errolog').hide(1000); //Esconde o elemento com id errolog
                            $('#loginlog').show(850);        //Informa que está logado
                            $('#formlogin').hide(500);        //ESCONDE FORMULARIO DE LOGIN
                            setTimeout("document.location = 'http://am.autec.net.br/'",3100); //location.href='https://www.webcarlos.com.br/'    //Redireciona
                        }else{
                            $('#errolog').show(850);        //Informa o erro
                        }
                    }
        })
        return false;    //Evita que a página seja atualizada
    })
})

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não pode existis dados duplicados para esquema de LOGIN. Você só pode ter 2 logins iguais por exemplo.

O correto é você "travar" isso no cadastro do User, se já tiver o login cadastrado escolha outro. O mesmo é válido para o e-mail do cadastro. Defina colunas do mysql que armazena o email e login como UNIQUE e trate isso no PHP.

  • Obrigado! 1

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 Jonas Ribeiro Nascimento
      Estou criando meu próprio mvc php para adquirir mais conhecimento.
      Mas estou me deparando com uma coisa muita estranha, eu perco a $_SESSION de uma view para outra view
      Fiz um codigo simples pra testar.a.php ----- view a.php
      <?php session_start(); $_SESSION['teste'] = 'Funcionou'; echo $_SESSION['teste']; ?> <?php session_start(); echo $_SESSION['teste']; // Notice: Undefined variable: _SESSION in var_dump($_SESSION); // Notice: Undefined variable: _SESSION in NULL ?> <?php namespace Sis\Classes; use App\Model\ClassLogin; use Sis\Traits\TraitGetIp; class ClassSession { private $login; private $timeSession = 1200; private $timeCanary = 300; public function __construct(){ if(session_id() == ''){ ini_set("session.save_handler", "files"); //Cabeçalhos somente atraves de arquivos ini_set("session.use_cookies", 1); //Habilita o uso de cookies ini_set("session.use_only_cookies", 1); //Só pode habilitar a seção atraves de coockies ini_set("session.cookie_domain", DOMAIN); //Só aceita coockies vindo do nosso sistema ini_set("session.cookie_httponly", 1); //Só aceita script php e não deixa o javascript alterar o sistema if(DOMAIN != "localhost"){ ini_set("session.cookie_secure", 1); //Para trabalhar com o SSL do servidor ativo } /*Criptografia das nossas sessions*/ ini_set("session.entropy_length", 512); // ini_set("session.entropy_file","/dev/urandom"); ini_set("session.hash_function", "sha256"); ini_set("session.hash_bits_per_character", 5); session_start(); } $this->login = new ClassLogin(); } #Proteger contra roubo de sessão public function setSessionCanary($par=null){ session_regenerate_id(true); if($par == null){ $_SESSION['canary']=[ "birth" => time(), "IP" => TraitGetIp::getUserIp() //Pega o ip do usuario ]; }else{ $_SESSION['canary']['birth']=time(); } } #Verificar a integridade da sessão public function verifyIdSessions(){ if(!isset($_SESSION['canary'])){ $this->setSessionCanary(); } if($_SESSION['canary']['IP'] !== TraitGetIp::getUserIp()){ $this->destructSessions(); $this->setSessionCanary(); } if($_SESSION['canary']['birth'] < time() - $this->timeCanary){ $this->setSessionCanary("Time"); } } #Setar as sessões do nosso sistema public function setSessions($Email){ $this->verifyIdSessions(); $_SESSION['Login'] = true; $_SESSION['Time'] = time(); $_SESSION['Nome'] = $this->login->getIssetSession($Email)['data']['Nome']; $_SESSION['Email'] = $this->login->getIssetSession($Email)['data']['Email']; $_SESSION['Permissoes'] = $this->login->getIssetSession($Email)['data']['Permissoes']; } #Validar as páginas internas do sistema public function verifyInsideSession(){ $this->verifyIdSessions(); if(!isset($_SESSION['Login']) || !isset($_SESSION['Permissoes']) || !isset($_SESSION['canary'])){ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); }else{ if($_SESSION['Time'] >= time() - $this->timeSession){ $_SESSION['Time']=time(); }else{ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); } } } #Destruir as sessions existentes public function destructSessions(){ foreach (array_keys($_SESSION) as $key) { unset($_SESSION[$key]); } } #testar public function testarSessions(){ echo 'oiiiiiiiiiiiiiiiiiiiiiiooooooooooo'; } }

    • Por Allan Carlos dos Santos G
      Bom dia Pessoal, Gostaria de saber como Instalar e colocar pra rodar a versão do Zend PHP 1.11.11, tenho tido dificuldade de achar material na internet e se puderem ajudar, obrigado!
    • Por Perroni91
      Olá pessoal.
      Estou com uma dúvida, mas como sou leiga no mysql, não estou conseguindo resolver.
       
      Tenho duas tabelas no meu banco de dados:
       
      Posts
      id
      titulo_principal
      categoria_id
      imagem
       
      Categorias
      id
      categoria
       
      ---

      Já cadastrei as categorias 'HTML' e 'CSS', e cada um contêm 1 post de cada.

      O que eu gostaria era que: A cada vez que criar um post em alguma dessas categorias, mostrar a quantidade separadamente.

      Ficaria assim:
      HTML               3
      CSS                   1


      Alguém poderia me ajudar, por favor?
      Estou quebrando a cabeça tentando fazer isso e não consegui.
      Obrigada!
    • Por Soneca_BO
      Boa tarde Pessoal!
       
      Estou a um bom tempo tetando fazer um CRUD em um banco de dados não tradicional e sim do "Cognos tm1",
       
      Estou fazendo uma aplicação WEB e queria usar o Ajax com jquery e javascript(dependendo do caso) para fazer um CRUD
      salvando dados deletando e fazendo as devidas atualizações, mas não estou conseguindo fazer o "PUT" e nem o "DELETE", 
      E não faço ideia de como começar a escrever o código para os métodos informados acima.
       
      Segue código criado para fazer o GET (só conseguir fazer o GET)
      $.ajax({ username: 'admin', password: ' ', url: "http://localhost:8881/api/v1/Cubes('ACO.200.Despesas')/Views('visao')/tm1.Execute?$expand=Cube($select=Name;$expand=Dimensions($select=Name)),Axes($expand=Tuples($expand=Members($select=Name;$expand=Element($select=UniqueName)))),Cells", method: 'POST', headers: { "Authorization": "Basic YWRtaW46", "cache-control": "no-cache", }, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { console.log(data); }, error: function () { alert("erro"); } });  
       
      Obs.: não sou muito bom em rest e estou buscando aprender mais sobre ele, se alguém poder me ajudar agradeceria muito.
       
      Desde já agradeço alguém que conseguir me da uma força.
       
×

Informação importante

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