Jump to content
drx

Só cadastrar se existir email na tabela

Recommended Posts

Olá pessoal!

 

Estou desenvolvendo um pequeno portal. E preciso resolver uma questão.

No momento de "Registrar-me no portal", preciso que assim que o usuário  preencher o e-mail dele, o sistema verifique em uma tabela previamente preenchida por mim, se o email deste usuário existe. Ou quando o usuário clicar em "Cadastrar" então o sistema verifica nesta tabela  se  existe este e-mail. Caso exista, prossegue com o cadastro. Caso não exista, simplesmente retorna para a o index.

Eu já faço o cadastro na base de dados com php_pdo, tudo direitinho.

Mas se houver um exemplo mesmo em jquery ou json seria interessante.

Desde já agradeço.

 

Share this post


Link to post
Share on other sites

você pode fazer a consulta com ajax:

(se estiver utilizando jquery :)

 

 $.ajax({
      url: "file.php"
      success: function(data) {
       console.log(data);
      }
 });

 

e no success criar as condicionais.

Share this post


Link to post
Share on other sites

Beleza Winterjeferson!

Obrigado pela atenção. Deixa explicar melhor.
Tenho na base mysql uma relação de e-mails de Consultores previamente cadastrados por mim. 
Só pra esclarecer, estou desenvolvendo um pequeno portal. 
Ao acessar o portal, o Consultor tem a chave "Entrar" e o clicar nela aparecerá o formulário dentro de uma div para 
logar com o e-mail e senha. Porém antes disso ele precisa se registrar. 
Nesse formulário de logar possui também um link: "Registrar-me no portal".
Bom, vamos ao que interessa. 
Preciso que, quando o Consultor clicar em "Registrar-me no portal", primeiramente carregue dentro da div um formulário 
onde o Consultor vai verificar se existe ou não o seu e-mail previamente cadastrado por mim.
Ou seja, um verificador de e-mail. Bom, até aí já está fazendo ou seja, o sistema já verifica na tabela se existe o e-mail do Consultor.
Quero que ao verificar o e-mail, se existe, então emite a mensagem: "E-mail já cadastrado" e redireciona para o formulário "Logar" e caso não exista então carrega pra dentro da div o formulário para  cadastrar. Caso o e-mail do Consultor não for encontrado, emite a mensagem: 'Usuário sem autorização para se registrar" e retorna para o "index.php".
E não estou conseguindo carregar o bendito formulário. 

 

Dentro da página: verificar_email.php estou usando ajax para validar os dados. 

Só que não estou sabendo fazer as condicionais.


<script type="text/javascript"> 

$(document).ready(function(e){ 
$('#ver_email').click(function(e){    

var txtEmail = $("#txtEmail"); 

if($("#txtEmail").val()!=""){ 

("Verificando o seu e-mail!"); 

$.ajax({ 
url: 'verificando_email.php', 
type: 'POST', 
data:{"txtEmail" : txtEmail.val()}, 
success: function(data) { 
console.log(data); 
data = $.parseJSON(data); 

}); 
}); 
}); 
</script> 

<form id="f2" name="f2" method="post" action="">

 

 

Desde já agradeço.

Share this post


Link to post
Share on other sites

Vamos lá. Vou tentar explicar.

Preciso saber como fazer essa validação através do ajax.

Eu envio a consulta através das linhas 2,3,4  correto?

Preciso que me retorne um valor da tabela pois na linha 2 faço a resquisição no banco de dados. 

Preciso agora fazer a verificação por esse retorno da base. Vamos às condições:

Se existe o e-mail e o status=0, então  o usuário está autorizado a se cadastrar e abre dentro da div  a página pra cadastro.

Se não existe o e-mail, então  o usuário não está autorizado a se cadastrar e retorna para o index.php

Se existe o e-mail e o status=1, então emite mensagem de usuário ou e-mail já cadastrado

 

Como que implemento essas condições no ajax abaixo?

 

1- $.ajax({ 
2 - url: 'verificando_email.php', 
3 - type: 'POST', 
4 - data:{"txtEmail" : txtEmail.val()}, 
5 - success: function(data) { 
6 - console.log(data); 
7 - data = $.parseJSON(data); 

 

Grato pela atenção.

 

Share this post


Link to post
Share on other sites

Na linha 5, o data é o retorno do php. 

Na linha 6 só é exibido no console (f12).

Eu traria a validação pronta já do php. E dentro do success, colocaria um switch.

 

switch(data){

   case 1:

      //abre dentro da div  a página pra cadastro

      break;

 case 2:

      //o usuário não está autorizado a se cadastrar e retorna para o index.php

      break;

 case 3:

      //emite mensagem de usuário ou e-mail já cadastrado

      break;

}

Share this post


Link to post
Share on other sites

Bacana. Vou implementar dessa forma e ver o que dá. Obrigado WinterJeferson pela aula.

 

Share this post


Link to post
Share on other sites

Deixa eu te perguntar só mais uma coisa:

Você sabe se existe alguma linguagem web para desenvolver ferramentas para autocad ? 

Share this post


Link to post
Share on other sites

Como autodesk desenvolve em c++ creio que a plataforma nodejs, não ?

Share this post


Link to post
Share on other sites

Opa!

Tudo que  é novo, a gente estranha um pouco mas depois vai....kkk 

Tô agarrado numa questão boba. Não estou conseguindo trazer o resultado do banco de dados que esta em outra página.

Veja bem é a mesma questão da verificação do email. o switch analisa ocultamente o resultado da consulta no banco de dados ou eu posso trazer pra outra página em uma div?

Inclusive a validação já é feita na consulta em "verificando_email.php"

Me ajuda aí mestre.

 

 

verificar_email.php

(...)

jquery:

<script type="text/javascript">
    $('#resultado').hide();
    $('#Verificar').click(function(e){        
         
         var valor = $(txtEmail).val();    
         
         $.post('verificando_email.php', {email:valor}, function(data){
           console.log(data);

  

         switch(data){

         case 1:

            //abre dentro da div  a página pra cadastro

         break;

 

        case 2:

            //o usuário não está autorizado a se cadastrar e retorna para o index.php

        break;

 

       case 3:

            //emite mensagem de usuário ou e-mail já cadastrado

       break;

 

 


           $('#resultado').html(data) //ou append(data)
           $('#resultado').show();  << aqui quero o ver o resultado da consulta, porém não vem.

 

  });

  return false;
    
});

</script>

 

 

</head>

<body>


<div id="resultado">Resultado</div>  

 

<form id="f2" name="f2" method="post" action="">
<div id="emspwd">
  <table width="520" height="323" border="0" bgcolor="#CC66FF">
    <tr>
      <td height="25" bgcolor="#CC66FF">&nbsp;</td>
      <td bgcolor="#CC66FF">&nbsp;</td>
      <td bgcolor="#CC66FF"><a href="index.php">X</a></td>                   
    </tr>
    <tr>
      <td width="23" height="83" bgcolor="#CC66FF">&nbsp;</td>
      <td width="462" align="center" bgcolor="#CC66FF"><img src="imgs/checar_1.jpg" width="428" height="168" align="middle" /></td>
      <td width="21" bgcolor="#CC66FF">&nbsp;</td>
    </tr>
    <tr>
      <td height="28" colspan="3" valign="bottom" bgcolor="#CC66FF">Entre com o seu e-mail </td>
      </tr>
    <tr>
      <td height="28" bgcolor="#CC66FF">&nbsp;</td>
      <td bgcolor="#CC66FF"><input name="txtEmail" type="text" id="txtEmail" size="35" placeholder required="" /></td>
      <td bgcolor="#CC66FF">&nbsp;</td>
    </tr>
    <tr>
      <td height="28" bgcolor="#CC66FF">&nbsp;</td>
      <td bgcolor="#CC66FF"><input type="submit" name="Verificar" id="Verificar" value="Verificar" /></td>
      <td bgcolor="#CC66FF">&nbsp;</td>
    </tr>
    <tr>
      <td bgcolor="#CC66FF">&nbsp;</td>
      <td bgcolor="#CC66FF">&nbsp;</td>
      <td bgcolor="#CC66FF">&nbsp;</td>
    </tr>
  </table>
</form>
</div>

</body>
</html>

 

 

 

 

 

verificando_email.php

 

<?php
 include("conexao.php");

$pdo=conectar();

try {
    
  if(isset($_POST['Verificar'])){
    
   $email = $_POST['txtEmail'];
  
   $stmt=$pdo->prepare("SELECT * FROM identificadores WHERE email='".$email."'");
   $stmt->execute();

   $linha = $stmt->fetchAll(PDO::FETCH_ASSOC);

   foreach($linha as $listar){
    
         $email = $listar["email"];
         $st    = $listar["st"];
 
         if ($st=="1"){

                  echo '
                 <script type="text/javascript">alert("E-mail já cadastrado");
                 </script>';
                /* echo '<script type="text/javascript">location.replace("index.php");</script>'; */           
      }
        
         if ($st=="0"){

                  echo '
                 <script type="text/javascript">alert("Consultor autorizado a se registrar");
                 </script>';
                /* echo '<script type="text/javascript">location.replace("cadastrar.php");</script>'; */               
     }
             }
      
      //Verifica em caso de NÃO for Consultor da equipe...
      $stmt=$pdo->prepare("SELECT * FROM identificadores WHERE email='".$email."'");
      $stmt->bindValue(':email', $email, PDO::PARAM_STR);
      $stmt->execute();
      
      $res = $stmt->rowCount();
      
      if($res < 1){
      
                echo '
               <script type="text/javascript">alert("Visitante não autorizado a se registrar");
               </script>';
              /* echo ' <script type="text/javascript">alert("Cadastre-se em nossa equipe.");</script>'; */    
              /* echo ' <script type="text/javascript">location.replace("index.php");</script>'; */    
      } 

   
// Se houver mensagens de erro, exibe-as
    if (count($error) != 0) {
        foreach ($error as $erro) {
        echo $erro . "";
            }
        }
    }
} catch (Exception $e) {
  echo 'Error: '. $e->getMessage();    
}
                
?>

Nota: Está funcionando porém quero executar sem o refresh e redirecionar para as devidas páginas.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.