Comprobando si hay un correo electrónico válido y si existe

Pude permitir a los usuarios invitar a un amigo enviándoles un correo electrónico con un código de invitación único,

  • sin embargo, estoy tratando de agregar a la capacidad de verificar si es una dirección de correo electrónico válida y si el correo electrónico ya está registrado en otra tabla ‘usuarios’ (misma base de datos) ya que sería un dolor de cabeza para alguien que ya está registrado recibir correos electrónicos de invitación .

He intentado verificar si hay un correo electrónico válido y si existe al escribir este script:

function email_registered($email) { $email = sanitize($email); return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `email` = '$email'"), 0) ==1) ? true : false; } if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) { $errors[] = 'A valid email address is required'; } if (email_registered($_POST['email']) === true) { $errors[] = 'Sorry, the email \'' . $_POST['email'] . '\' is already in use'; } 

Esto fue exitoso para verificar direcciones de correos electrónicos al registrar un usuario, pero el registro de una cuenta estaba en la misma tabla que la cuenta registrada. No estoy seguro de cómo usar el mismo script en el código de invitación ya que estoy tratando de verificar un correo electrónico en la tabla separada registrada.

Actualmente no verifica si es un correo electrónico válido o si existe.

El PHP completo:

 include 'config.php'; function email_registered($email) { $email = sanitize($email); return (mysqli_result(mysqli_query("SELECT mysqli_num_rows()(`user_id`) FROM `users` WHERE `email` = '$email'"), 0) ==1) ? true : false; } if(!empty($_POST)){ if(!empty($_POST['email'])){ $email = mysqli_real_escape_string($conn,$_POST['email']); $length = 10; $inviteCode = ""; $characters = "0123456789abcdefghijklmnopqrstuvwxyz"; for ($p = 0; $p  0) { //email exists ?> 

User Exists

0) { //email exists ?>

User Exists

"Thank you for inviting your friends!"

Sorry there must have been a problem

Please enter an email

Solo estoy tratando de verificar si el correo electrónico está registrado en la tabla de “usuarios” y si el correo electrónico ingresado es válido.

Creo que su pregunta principal es cómo verificar si existe un correo electrónico en otra mesa. Si eso es incorrecto, avíseme y puedo actualizar mi respuesta: P Aquí hay un borrador de una función que debería poder usar.

Supongo que tienes estas dos tablas:

Tabla 1: usuarios

 ||id||email||name|| 

Tabla 2: invitaciones

 ||id||email||inviter_user_id|| 

Puede usar esta función para verificar si el correo electrónico existe en cualquiera de las tablas

  0) { //email exists $ret_val = true; } else { $query = sprintf( "SELECT id FROM invites WHERE email = '%s'", mysqli_real_escape_string($email) ); $result = mysqli_query($query); $num_rows = mysqli_num_rows($result); if ($num_rows > 0) { //email exists $ret_val = true; } } return $ret_val; } } ?>