How to check repeated email in the database?

Asked

Viewed 346 times

-1

When I put an email, even if it is repeated or not, returns me this error here:

Warning: mysql_num_rows() expects Parameter 1 to be Resource, Boolean Given in C: xampp htdocs sistemaslogin classes connects.php on line 45 You have registered information! New record created successfully

My code is this::

          <form id="form1" action="classes/conecta.php" method="post">

 <div class="form-group">
      <label for="email">Email:</label>
      <input type="email" class="form-control" id="email"  name="email"placeholder="Enter email">
    </div>
</form>




<?php
//conexão banco de dados
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "login";

// Create connection
$conn = new mysqli($servername, $username, $password,$dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 







//captura valores campos formulario
$nome=$_POST["nome"];
$endereco=$_POST["endereco"];
$email=$_POST["email"];
$senha=$_POST["senha"];

 //redireciona o usuario para index.php   
/*if(isset($_POST['enviar'])){
echo "<script>alert('não houve conexão com o banco'); location.href='../index.php';</script>";  
  }*/





//insere os dados no banco de dados
$sql = "INSERT INTO login (nome, end, email,senha)
VALUES ('$nome', '$endereco', '$email','$senha')";




if ($email>"1"){
$query = mysql_query("SELECT * FROM email WHERE email='$email'");
$numeros = mysql_num_rows ($query);
if ($email>"0"){
echo "Tem uma informação cadastrada!";   //Sucesso
}
else{
echo "Não tem nenhuma informação cadastrada!"; //Erro
}


//verifica se foi inserido os dados no banco corretamente
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully"."<br>";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

}?>
  • 3

    Possible duplicate. http://answall.com/questions/28184/mysql-fetch-array-expects-parameter-1-to-be-resource-boolean-given-in

  • 1

    And it’s probably happening because it’s mixing mysqli with mysql.

1 answer

1


Do it like this, tested on my server!

<?php
//====================================================
//Função para validar E-mail com dominio válido
//====================================================
function validEmail($email){
  $dominio = "www.";
  $resultado = explode("@", $email);
   if ($resultado > 1) {
      $checaNome = $resultado[0];
      $usuario = "/([a-zA-Z0-9\._-])/";
        if(preg_match($usuario, $checaNome)) {
          $endereco = $dominio.$resultado[1];
          $fp = @fsockopen($endereco,80);
            if($fp) {
              $isValid = true;
              fclose($fp);
            } else {
              $isValid = false;
            }
       }else{
         $isValid = false;
       }
   }else{
     $isValid = false;
   }
return $isValid;
}

if (isset($_POST["email"]) && !empty($_POST["email"])) {
//====================================================
//captura valores campos formulario
//====================================================
$nome=$_POST["nome"];
$endereco=$_POST["endereco"];
$email=$_POST["email"];
$senha=$_POST["senha"];

//====================================================
//só roda se o email for válido
//====================================================
if (validEmail(Trim($email))){

//====================================================
//Cria conexão com banco
//====================================================
$conn = new mysqli("localhost", "USUARIO", "SENHA", "nomeDB");

//====================================================
//Verifica a conexão
//====================================================
if ($conn->connect_error) {
   die("Connection failed: " . $conn->connect_error);
} 

//====================================================
//verifica se existe email - faz insert
//====================================================
$result = $conn->query("SELECT COUNT(*) FROM login WHERE email = '$email'");
$row = $result->fetch_row();
if ($row[0] > 0) {
  echo "Tem uma informação cadastrada!<br>"; //Sucesso
} else {
  echo "Não tem nenhuma informação cadastrada!<br>"; //Erro 
  $sql = ("Insert into login (nome, end, email, senha) values ('".$nome."','".$endereco."','".$email."','".$senha."')");
}

//====================================================
//verifica se foi inserido os dados no banco corretamente
//====================================================
if ($conn->query($sql) === TRUE) {
  echo "incluido com sucesso";
} else {
  echo "falha ao incluir arquivo";
} 

//====================================================
//fecha conexão
//====================================================
mysqli_close($conn);

//====================================================
//se o email não for válido
//====================================================
}else{
  echo "Email: ( ".$email." ) inválido"; //Erro
}

}
?>

HTML

<!DOCTYPE html>
<form id="form1" action="" method="post">
<div class="form-group">
<label for="email">Nome:</label>
<input type="text" class="form-control" id="nome" name="nome"placeholder="Enter 
nome" required>
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" name="email"placeholder="Enter 
email" required>
<label for="endereco">Endereço:</label>
<input type="text" class="form-control" id="endereco" name="endereco"placeholder="Enter 
endereço" required>
<label for="email">Senha:</label>
<input type="senha" class="form-control" id="endereco" name="senha"placeholder="Enter 
senha" required>
<input type="submit" value="enviar" name="enviar" style="font-size: 11px">
</div>
</form>

  • 1

    I just got one thing to tell you I love you haha it worked out here

Browser other questions tagged

You are not signed in. Login or sign up in order to post.