Ir ao conteúdo

PHP validar se e-mail já está cadastrado mysql php


Ir à solução Resolvido por vitizin,

Posts recomendados

Postado
<?php

//CONEXAO COM O BD
$hostname = "localhost";
$bancodedados= "psych";
$usuario= "root";
$senha= "";



$pdo = mysqli_connect ($hostname, $usuario, $senha, $bancodedados);

if (!$pdo) {

    die("houve um erro: ". $mysqli_connect_error ());
    }
    
    else{
      echo "conexão realizada com sucesso no BD";
      $email = $_POST['username']; //pega os dados do form 
      
      $query = mysqli_query($pdo, "SELECT * FROM pacientes WHERE emailPA ='$email'"); // monta a query
if(mysqli_num_rows($query) > 0 ) {//se retornar algum resultado
  echo"<script language='javascript' type='text/javascript'>
  alert('Já existe um usuário cadastrado nesse e-mail');window.location
  .href='../login.php';</script>";
  header ("Location:../index.php");   //sucesso
}

 else{
  echo"<script language='javascript' type='text/javascript'>
  alert('Não existe ainda!');window.location
  .href='../login.php';</script>";
  header ("Location:../index.php");

    }
  
  }

como faço para verificar se os e-mails já estão cadastrados no Mysql?? O código não me retorna nenhuma mensagem, e todos os e-mails vão para o banco

imagem_2022-10-12_114010967.png

  • 3 semanas depois...
  • Solução
Postado

em cima do codigo de inclusão de dados você coloca isso:

$sql = $pdo->prepare("SELECT * FROM 'nome da tabela' WHERE email = :email");

$sql->bindValue(':email', $email);

$sql->execute();



abaixo desse codigo coloque:



if($sql->rowCount() == 0) {

aqui é colocado o codigo de inclusão

}

else {

header("location: index.php);

}

 

Postado

Uma forma de garantir que não serão inseridos dois registros com o mesmo email, é declarar unique quando escrever o sql.
ex.:

create table users(
  id int(9) primary key auto_increment,
  name varchar(191) not null,
  email varchar(191) unique,
  created_at timestamp default current_timestamp
);

 

Postado

valeu rapaziada, mas tinha conseguido de outra forma. vou deixar o código aq caso for útil p alguém um dia.

<?php
$hostname = "localhost"; //CONEXAO COM O BD
$bancodedados= "psych";
$usuario= "root";
$senha= "";

$pdo = mysqli_connect($hostname, $usuario, $senha, $bancodedados);

//recebe as variáveis do form
$email = $_POST['username'];



//validação de E-MAIL -- criação de variaveis;
$dados_rc = filter_input_array(INPUT_POST, FILTER_DEFAULT);
$erro = false;
$dados_st = array_map('strip_tags', $dados_rc);
$dados = array_map('trim', $dados_st);


//faz a query;
$result_usuario = "SELECT * FROM pacientes WHERE emailPA='". $dados['username'] ."'";
$resultado_usuario = mysqli_query($pdo, $result_usuario);

//se o numero de linhas na coluna for diferente de 0;
if(($resultado_usuario) AND ($resultado_usuario->num_rows != 0)){
  $erro = true;
  echo"<script language='javascript' type='text/javascript'>
  alert('Esse e-mail já está em uso.'); window.location
  .href='../index.php';</script>";
  
  

}else{
echo"<script language='javascript' type='text/javascript'>
alert('E-mail cadastrado.'); window.location
  .href='../index.php';</script>";

 

  • Curtir 2

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!