DUDA!! validar correos Hotmail o Gmail
Hola, bueno últimamente he tenido una duda acerca del registro, no tengo ningún problema, pero me gustaría saber como puedo validar el correo del usuario al momento de que se registra, es decir, quisiera que ya sea con alguna función php o javascript, me pueda validar que el correo que proporciono el usuario sea hotmail o gmail, y no un correo ficticio, por ejemplo:
example1@hotmail.com ---------> sea valido y deje proceder al registro.
example2@gmail.com ---------> sea valido y deje proceder al registro.
exmple3@novalido.com -----------> correo no valido, introduzca un correo hotmail o gmail. y no deje proceder al registro.
exmple4@abcdefghijklm.com -----------> correo no valido, introduzca un correo hotmail o gmail. y no deje proceder al registro.
he probado con el registro que tengo y es cierto que con poner cualquier valor después del @ y poner el .ej el registro lo valida como correo, al registrar el usuario claro que tengo el paso de verificar correo, pero me gustaría poder evitar este tipo de correo falsos o inexistentes, y que mi base de datos se llene de información no valida, por tanto me gustaría que el usuario pusiera dominios de correos permitidos, así mismo poder ya sea quitar o agregar dominios para el correo, por ejemplo yahoo, o dominios de correos de escuelas, y otras empresas ademas de las ya conocidas mundialmente... les agradecería mucho.
Editado
example1@hotmail.com ---------> sea valido y deje proceder al registro.
example2@gmail.com ---------> sea valido y deje proceder al registro.
exmple3@novalido.com -----------> correo no valido, introduzca un correo hotmail o gmail. y no deje proceder al registro.
exmple4@abcdefghijklm.com -----------> correo no valido, introduzca un correo hotmail o gmail. y no deje proceder al registro.
he probado con el registro que tengo y es cierto que con poner cualquier valor después del @ y poner el .ej el registro lo valida como correo, al registrar el usuario claro que tengo el paso de verificar correo, pero me gustaría poder evitar este tipo de correo falsos o inexistentes, y que mi base de datos se llene de información no valida, por tanto me gustaría que el usuario pusiera dominios de correos permitidos, así mismo poder ya sea quitar o agregar dominios para el correo, por ejemplo yahoo, o dominios de correos de escuelas, y otras empresas ademas de las ya conocidas mundialmente... les agradecería mucho.
Editado
0
Puntos
Puntos
4982
Visitas
Visitas
6
Resp
Resp
Por Jesxs hace 102 meses
Desactivado
Respuesta #1
Dudo q exista alguna manera de hace eso de hecho si te refistras en facebook con un correo tipo correo@hshshshsgsgsgjyyur.com te deja perfectamente
A ver q responden los compañeros
A ver q responden los compañeros
0
Puntos
Puntos
Por alber hace 102 meses
Administrador
Respuesta #2
Ay alber, como que no se puede.. Si no existe manera de hacerlo, hay que crearla. Claro que se puede hacer compañero Jesxs. Mira esto
Bien, pero el ejemplo solo valida si es hotmail.com y no otro. Puedes hacer ésto:
Bueno, crea una tabla llamada dominios_validos por ejemplo con las columnas (id, dominio). Con solo eso basta. Ahora, inserta todos los dominios que tú consideres validos.. Puedes hacerlo directamente desde el panel MySQL o creando un formulario e ir insertando los dominios válidos. Ahora, para validar el registro sería así:
HTML
PHP
hotmail.com
hotmail.es
gmail.com
yahoo.com
etc,etc,etc..
Pruébalo y vuelve para contarnos como te fue. Cualquier duda hazla por aquí y te ayudaremos. :)
<?php $correo = "hola@hotmail.com"; $explode = explode("@", $correo); if ($explode[1] == "hotmail.com") { echo "Valido"; } else { echo "No valido"; } ?>Te explico eso. El explode es una función de PHP que crea un array separando una cadena (string) por medio de un delimitador, en este caso nos interesa que sea @. Si tu haces un print_r de ese explode te mostrará el array.
print_r($explode); // ** Muestra ** // Array ( [0] => hola [1] => hotmail.com )Quiere decir que en la posición [0] tiene lo que está antes del @ y en la posición [1] tiene lo que está después del @, nos interesa lo que está después del @ ¿cierto? En este ejemplo es hotmail.com, pero si tú cambias la variable $correo por otro, por ejemplo
$correo = hola@viruslandia.comTe dirá que no es válido.
Bien, pero el ejemplo solo valida si es hotmail.com y no otro. Puedes hacer ésto:
if ($explode[1] == "hotmail.com" OR $explode[1] == "gmail.com" OR $explode[1] == "yahoo.com" OR $explode[1] == "outlook.com") { .... }E ir colocando todos los dominios que consideres. Cosa que funciona pero me parece que es más óptimo usando una base de datos. ¿Cómo así?
Bueno, crea una tabla llamada dominios_validos por ejemplo con las columnas (id, dominio). Con solo eso basta. Ahora, inserta todos los dominios que tú consideres validos.. Puedes hacerlo directamente desde el panel MySQL o creando un formulario e ir insertando los dominios válidos. Ahora, para validar el registro sería así:
HTML
<form action="registro.php" method="POST"> <input type="text" name="username"> <br> <input type="email" name="email"> <br> <input type="submit" value="Registrar"> </form>
PHP
<?php $username = $_POST["username"]; $email = $_POST["email"]; $validation = explode("@", $email); $dominio = $validation[1]; $sql = sprintf("SELECT * FROM dominios_validos WHERE dominio = %s", GetSQLValueString($dominio,"text")); $consulta = mysql_query($sql); $num_rows = mysql_num_rows($consulta); if ($num_rows == 1) { // Si existe este dominio como dominio valido en la base de datos // Registramos al usuario } else { // El dominio no existe como valido en la base de datos // No lo registramos } ?>Los dominios que guardes en la base de datos deben ser como:
hotmail.com
hotmail.es
gmail.com
yahoo.com
etc,etc,etc..
Pruébalo y vuelve para contarnos como te fue. Cualquier duda hazla por aquí y te ayudaremos. :)
Respuesta #3
claro y haces eso con los mas de mil millones de dominios que existen en internet??? y si yo tengo un correo de un domio propio que se llama admin@abcdefg.net que????
recordar que hay mas de mil millones de dominios y que con esos dominios existen correos electronicos aunque para usar los mas conocidos es obvio que se puede hacer con explode y condicionales aunque no creo que esa sea la pregunta pero puede valer
recordar que hay mas de mil millones de dominios y que con esos dominios existen correos electronicos aunque para usar los mas conocidos es obvio que se puede hacer con explode y condicionales aunque no creo que esa sea la pregunta pero puede valer
0
Puntos
Puntos
Por alber hace 102 meses
Administrador
Respuesta #4
ademas hay una función predefinida de php que se encarga de hacer eso
enlace oficial
<?php $email_a = 'joe@example.com'; $email_b = 'bogus'; if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) { echo "Esta dirección de correo ($email_a) es válida."; } if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) { echo "Esta dirección de correo ($email_b) es válida."; } ?>ay Jose y sus ilusiones xdd
enlace oficial
0
Puntos
Puntos
Por alber hace 102 meses
Administrador
Respuesta #5
JAJAJAJA, si alber. Yo busqué ese tema que hiciste sobre eso de validad. Pero el amigo quiere validar dominios decentes porque hay "bots" que se registran con correos como soyunbot4192@wseutjdaxfiw.com
Ciertamente hay millones de dominios, pero él dice que pondría los dominios más conocidos y eso.. Bueno, cito.
Ciertamente hay millones de dominios, pero él dice que pondría los dominios más conocidos y eso.. Bueno, cito.
// así mismo poder ya sea quitar o agregar dominios para el correo, por ejemplo yahoo, o dominios de correos de escuelas, y otras empresas ademas de las ya conocidas mundialmente
Respuesta #6
cierto, en cierta manera el compañero Jose tiene razon! tu quieres filtrar con los correos mas conocidos, hay que tener en cuenta que el 10% de los registros serán con correos de dominio propios
pero si estamos dispuestos a perder esos registros puedes usar este ejemplo que te hemos preparado Jose y yo:
pero si estamos dispuestos a perder esos registros puedes usar este ejemplo que te hemos preparado Jose y yo:
<?php //Por defecto 0 no válido $validar=0; //Correo del usuario $correo = "hola@hotmail.com"; //Obtener dominio $explode = explode("@", $correo); //Lista de correo válidos $permitidos=array('hotmail.com','gmail.com','etc.com'); //Cantidad de correos válidos $cantidad=count($permitidos); //Comparar con la lista de correos válidos for ($i=0; $i < $cantidad; $i++) { if ($permitidos[$i]==$explode[1]) $validar=1; } //Si es válido registrar usuario if($validar==1){ //Registrar usuario <---------- } //Si no es válido imprimir mensaje else if($validar==0){ echo 'correo no valido!'; } ?>en el array $permitidos puedes meter tu lista de correos permitidos separando con una coma, prueba y nos cuentas!
1
Puntos
Puntos
Por alber hace 102 meses
Administrador