Ir ao conteúdo

HTML login com numeros ou email


Ir à solução Resolvido por DiF,

Posts recomendados

Postado

Boa noite.

Já criei a pagina login e a conexao com php com meu banco de dados, porém gostaria de saber se é possível colocar no login , ao invés de ser somente o email, colocar também um numero, tipo matricula, ou numero de telefone.
Caso eu digite um numero, ele verifica se tem no BD, ou se eu digitar o Email, verifica se tem no BD.


 

 <form action="" method="POST">
  <p>
    <label>E-mail/ Numero</label>
    <input type="text" name="email" placeholder="Número ou E-mail">
  </p>                                    
   <button  type="submit" >Entrar</button>
</form>

 

  • Moderador
  • Solução
Postado

@Lipeco Sim, você pode fazer isso.  No php quando você recebe um dado, você faz uma verificação no banco de dados com a clausula OR. 

Mas nesse caso, é interessante que você transforme o email e o numero de matricula em chaves primárias, formando uma chave primária compostas ou  transformar pelo menos o numero de matricula em uma Chave candidata.

 

No php,  você pode usar a estrutura de switch case... onde você testa o tipo de dado vindo do formulário... se for um email, você faz um select baseado no email, se for um número, faz o select baseado no numero.

 

Por exemplo:

<?php
$dados = "fulano@email.com";

switch ($dados) {
  case is_numeric($dados):
    echo "é um número";
    break;
  case filter_var($dados, FILTER_VALIDATE_EMAIL):
    echo "É um e-mail";
    break;
  default:
    echo "O valor é inválido";
}

 

A estrutura ali em cima faz esse teste.  No caso, ele diria que é um e-mail. no lugar do echo,  você faria a estrutura do seu select... algo do tipo:

 

<?php

$dados = $_POST["login"];
$senha = $_POST["senha"];

switch ($dados) {
  case is_numeric($dados):
    $query = mysqli_query($conexao, "SELECT matricula, senha FROM cadastro WHERE matricula = $dados AND senha = $senha"); 
    // todo o resto da estrutura de login
    break;
  case filter_var($dados, FILTER_VALIDATE_EMAIL):
    $query = mysqli_query($conexao, "SELECT email, senha FROM cadastro WHERE matricula = $dados AND senha = $senha"); 
    //todo o resto da estrutura de login
    break;
  default:
    echo "O valor é inválido";
}

Basicamente é isso. Bem simples. 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!