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

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

  • Similar Content

    • By drx
      Olá experts !
       
      Preciso de uma sugestão com relação a servidor. Estou desenvolvendo um sistema multinível. O bichinho é meio parrudo. Envolve transações financeiras, segurança que é  crucial e aí já viu!
      Alguma sugestão ? Lembrando que um sistema multinível, tem uma escalabilidade surpreendente. Hoje tenho um cadastro, mas amanhã posso ter muitos simultâneos. O tráfego é pequeno no início e de repente, pode crescer muito. Levando em conta esses detalhes, que sugestão vocês me dão?
      Aguardo.
       
×

Important Information

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