Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] Verificar e-mail válido
#1
Muchas veces la gente piensa que un registro no sirve de nada y por lo tanto al momento de registrarse no usan su correo verdadero, para evitar esto aquí les dejo un pequeño fragmento de código en PHP.

Código PHP:
$email $_POST['email'];
if(
preg_match("~([a-zA-Z0-9!#$%&'*+-/=?^_`{|}~])@([a-zA-Z0-9-]).([a-zA-Z0-9]{2,4})~",$email)) {
    echo 
'Email válido.';
} else{
    echo 
'Usa un e-mail válido por favor.';

Ahora quieres saber... Quien soy?
Soy un delincuente, mi crimen es la curiosidad, Mi crimen es juzgar a las personas por lo que dicen y piensan, y no por lo que aparentan.
Mi crimen es ser mas inteligente que vos, algo por lo cual, nunca me olvidaras.
#2
Hola amgio gracias por el aporte, pero ese código es ya bastante antigüo, para comprobar el email llega con esto:
Código PHP:
if (filter_var($emailFILTER_VALIDATE_EMAIL)) {
    echo 
"Email válido";
}else{
echo 
"Inserta un email válido";


Saludos Sonrisa
#3
El código es bastante bueno, sin embargo ya existe una función en PHP que realiza dicha acción.
Pero no esta por demás aprender algún truquito extra no cierto ??
#4
hola, el código esta genial, sin embargo yo lo hago muy distinto, les dejo la idea.

hago un formulario que solicita el email... este lo almaceno en una base de datos y le envio un correo dirigiéndolo a una pagina que incluye como variable el correo, ejemplo [email protected] ... ahora al ingresar aca ya se que el correo es valido y allí aporto el resto del formulario a rellenar, asi fijo si existe el correo....

algo mas...
algo que he hecho para no enviar el correo por GET es utilizar una base de datos que dice [email protected] equivale a una variable 121314... cuando le dan click en el correo del cliente para confirmar el correo regresan a registro.php?var=121314 y de esta forma el usuario no sabe que esta sucediendo ni por detrás sabe que estoy obligándolo a confirmar el correo!
aco cabron
Honda cx500 '81
#5
Lo mejor de todo es poner un envio de dato aleatorio y que se confirme su identidad al introducir el còdigo enviado a su correo, que es lo que han la mayorìa de scripts actuales, dicho còdigo va protegido y simplemente lo aloja como dato en la cuenta y envìa el mismo valor a su correo dado, de ahi cuando se valida se hace una comparaciòn de ambos campos y si son validos simplemente le das true, en lo contrario false, es quizà mas laborioso, pero evitas que se registren con correos de terceros, porque a mi me han llegado correos de registro de sitios y nisiquiera me registre, ni sale como eliminar la suscripciòn y simplemente los mando a no deseados o spam a esos correos que me llegan, pues no pìenso registrarme xD.

Creo que yo opto por algo asi, que al momento tome valores aleatorios, como por ejemplo la fecha, el nombre del usuario, el correo y luego de ahi le agregue un valor encriptado, y este sea enviado a tu campo como ya dje, pues siempre cambia en cada registro xD. Al final se comparan ambas banderas y listo !!!. En caso contrario, pues se quedan sin registrarse xD, o sin obtener lo que desean del sitio Gran sonrisa.
No hay nada mas infinito que el unverso y la estupidez humana, aunque del universo no estoy tan seguro...
WWW
#6
Concuerdo con algunos comentarios ya escritos, para una validación simple se podría usar FILTER_VALIDATE_EMAIL a la par de FILTER_SANITIZE_EMAIL. Ejemplo:

Código PHP:
<?php

function sanitizarEmail($email) {
    return 
filter_var($emailFILTER_SANITIZE_EMAIL);
}

// $_POST['email'] = '<b>usÑuariÁo¿(@)s€rvidør.coµ</b>' 
echo sanitizarEmail($_POST['email']);
// Output: [email protected]

if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    
// Es aparentemente válido
} else {
    
// Es inválido
}

?>

(16-07-2013, 11:17 PM)Dark Neo escribió: Lo mejor de todo es poner un envio de dato aleatorio y que se confirme su identidad al introducir el còdigo enviado a su correo, que es lo que han la mayorìa de scripts actuales, dicho còdigo va protegido y simplemente lo aloja como dato en la cuenta y envìa el mismo valor a su correo dado, de ahi cuando se valida se hace una comparaciòn de ambos campos y si son validos simplemente le das true, en lo contrario false, es quizà mas laborioso, pero evitas que se registren con correos de terceros, porque a mi me han llegado correos de registro de sitios y nisiquiera me registre, ni sale como eliminar la suscripciòn y simplemente los mando a no deseados o spam a esos correos que me llegan, pues no pìenso registrarme xD.

Creo que yo opto por algo asi, que al momento tome valores aleatorios, como por ejemplo la fecha, el nombre del usuario, el correo y luego de ahi le agregue un valor encriptado, y este sea enviado a tu campo como ya dje, pues siempre cambia en cada registro xD. Al final se comparan ambas banderas y listo !!!. En caso contrario, pues se quedan sin registrarse xD, o sin obtener lo que desean del sitio Gran sonrisa.

Pero aquí se plantea algo que va antes de usar el mail en cuestión.

Lo que dices esta bien, y me parece que si se quiere una forma segura de que no son bots, es una buena medida, pero qué pasa si el usuario ingresa un email no válido ya sea por error al escribirlo o fue adrede escrito así (del tipo [email protected] vidor.com ó usuario@?#^servidor.com) y no fue validado antes de guardarlo? todo el proceso de confirmación resultará inútil porque, ya sea que se use la función mail() o la clase phpMailer, el correo es inválido y simplemente no llegará al destinatario.
WWW
#7
si escribe mal pues será que no estará muy interesado o lo hizo a la carrera y no le importaba que fuera bien escrito... yo lo hago asi...

primer formulario
adquiro email de cliente
genero un aleatorio
envio email con link registrateaca.php?var=121314

el cliente entra a su correo y da click a link

muestro pagina donde
valido el aleatorio obtenido por get
confirmo el correo pero no le muestro para que no pueda cambiarlo
agrego resto de campos para que rellene información
finalizo con update a la base de datos

de paso... son dos tablas una que lleva el aleatorio y además de esto un valor opcional, el cual tomo como 0 recién confirma y 1 es que se le olvido los datos de el y quería volverse a ingresar por lo que lo reenvio a la pagina de olvido de contraseña

es lo mas funcional que he pensado! no se si alguien ha añadido algún paso mas?
aco cabron
Honda cx500 '81
#8
hola esteban..
Que script usas?? está buena esa idea, me gustaría usarla Sonrisa
Próximamente sitio web de descargas, sistemas operativos Samsung, archivos combinados oficiales Samsung (reparación de imei y desbloqueo FRP), programas útiles para la reparación de Software.
Servidor FTP premium, mínima cuota mensual (trimestral, semestral, anual)
WWW
#9
Veras, en mi scrip son varias paginas, la primera el debe ingresar el email, yo le envio el email con la variables la cual la guarde en mi base de datos para cuando el regrese saber que el es el...
adjunto el archivo, obviamente no va a servir de un solo pues mi base de datos va a ser distinta a las tuyas, pero el procedimiento esta alli!

ejemplo
-entro y envio [email protected]
- genero un numero loco (121314 para este ejemplo)
-envio un correo a [email protected] diciendo blablabla click aqui con un href a la pagina que dice registrate.php?id=121314

lo que utilizo para hacer ese numero es:

$randomizer = rand(0000000000, 9999999999);

y envio el correo:
ojo a la variable suscribete, alli le mando el 121314



$suscribete = 'http://www.toqueyjale.com/apps/ingreso.php?correo='.$randomizer;
$asunto=' Estas a un paso de completar tu suscripcion';


// MULTI-HEADERS Content-Type: multipart/mixed and Boundary is mandatory.
$cliente=$row_cliente['empresa'];
$correo=$row_cliente['email'];
$headers = "From:" .$cliente."<".$correo.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=".$num."\r\n";
$headers .= "--".$num."\n";

// HTML HEADERS
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "".$body."\n";
$headers .= "--".$num."\n";

// FILES HEADERS
$headers .= "Content-Type:application/octet-stream ";
$headers .= "name=\"".$_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";

}else { //FILES NO EXISTS

// HTML HEADERS

$cliente=$row_cliente['empresa'];
$correo=$row_cliente['email'];
$headers = "From: Toque y Jale<[email protected]>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
}

// SEND MAIL
mail($_POST['textfield2'], $asunto , $body, $headers);

/* listo, le indico que vea el correo! */
echo '<span class="Catorce">Te hemos enviado un correo para que completes el registro gratuito de Toque y Jale Costa Rica, puede ser que lo tengas en tu bandeja de entrada o bien en los correos no deseados (spam)</span><p><p><p>';


}
}
/* aqui ya envie el correo*/
aco cabron
Honda cx500 '81


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Enviar correos con cabaceras usando la funcion mail() torgar22 0 165 28-02-2015, 02:44 PM
Último mensaje: torgar22
  [PHP] Enviar e-mail torgar22 0 335 13-03-2013, 03:26 PM
Último mensaje: torgar22
  [ayuda] enviar link en funcion mail() php esteban 3 2,540 15-02-2013, 04:03 AM
Último mensaje: ouch01
  10 Claves para la seguridad del e-mail ante el pishing Jonatan0010 7 710 06-11-2012, 08:28 PM
Último mensaje: cep999



Usuarios navegando en este tema: 1 invitado(s)