Alguien puede indicarme la funcion para validar un email en PHP
etriana.com
| |||
Re: Validar email en PHP Una forma sencilla sería comprobar si el campo de email está vació con if: if ($email == ""){ echo "El campo email está vació";} else{ //Aquí lo que quieras hacer si el campo de email no está vacío } Espero que al menos te sirva de algo jeje. Saludos! <html><center><embed src="http://www.iespana.es/redmaestro/banner.swf" height=75 width=500> </embed></center></html> |
| |||
Re: Validar email en PHP Otra mas completa de validacion de mail ... if (!ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})$",$email)){ echo "El e-mail no es valido"; } else { // tu veras que haces si es valido .. } Se usa una expresion regular para validar el [email protected] .. atendiendo a varios factores .. de igual forma valida si hay algo o no .. Un saludo, pd: Chivi jeje ponte las pilas con las expresiones regulares :P |
| |||
Re: Validar email en PHP es q.. no sabia donde tenia ese ejemplo!!! Busque hasta debajo de la moqueta y nada!! y por no dejarla a secas mientras buscaba, pues un apañito le hice jejeje. PD: Utiliza la opción del maestro Cluster jeje. Algun día seré yo el sucesor . |
| |||
Re: Validar email en PHP Gracias Ferdy jeje tomo nota. Como todo .. estos patrones para validar un e-mail .. deberiamos de mirar su correspondiente norma en la RFC no se cuantos .. cosa que yo no hice jeje :cantar: Un saludo,xDD |
| ||||
Re: Validar email en PHP jajajaja Genial! comenzamos la guerra de las Expresiones Regulares. Seguro que de todo esto saldrá algo más que interesante) Primero, quiero comentarles que la Expresion de Ferdy, tiene un error de sintaxis, que se le debe haber escapado mientras tipeaba. Correctamente sería:
Código:
Pero que ocurre? esta expresion regular ( como la de nuestro amigo Cluster) tiene unas pequeñas fallas, a saber:$res = ereg( '^(a-z0-9_]|\\-|\\.)+'. '@'. '(([a-z0-9_]|\\-)+\\.)+'. '[a-z]{2,4}$', $email); 1) no impode que una direccion de email comience con un numero, cosa que en muchisimos servidores de email no se permite. 2) no impide que la direccion comience con caracteres no válidos, como _, - o . 3) no impide que antes de la @ no pueda haber un punto 4) No evita el uso del caracter "_" en el dominio. Entonces, aquí va MI version de la expresion regular validadora de emails (E.R.V.E) : $res = ereg( '^[a-z]+([\.]?[a-z0-9_-]+)*@'.// usuario '[a-z]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', // server. $email); Ahora tan solo necesitamos a alguien que venga y nos diga : "Yo tengo una version mejor" y así seguimos con "la pelea". :P <hr><font size=2 face=verdana>- Pablo Rigazzi (<img src=http://www.fantabuloso.com/iB_html/non-cgi/emoticons/bullwhip.gif align=absmiddle>)[/CODE] <font size=1 color=#333333>Visita <a href=http://www.web-studio.com.ar>Web Studio</a>[/CODE] |
| |||
Re: Validar email en PHP jajajaa está buena la pelea por "refinar" mas el codigo .. Yo tomo nota de lo q valla saliendo jeje pues soy "primerizo" con las expresiones regulares xDDD Un saludo, |
| ||||
Re: Validar email en PHP Fe de Erratas : Dónde dice Cita: Debería decir :
Código:
$res = ereg( '^(a-z0-9_]|\\-|\\.)+'. '@'. '(([a-z0-9_]|\\-)+\\.)+'. '[a-z]{2,4}$', $email);
Código:
Y ya va la primera "actualizacion"... acabo de recordar de que un dominio SI puede comenzar con un número, cosa que un usuario NO. Es por eso que hay que modificar la expresión para que quede asi:$res = ereg( '^[a-z0-9_]|\\-|\\.)+'. '@'. '(([a-z0-9_]|\\-)+\\.)+'. '[a-z]{2,4}$', $email); $res = ereg( '^[a-z]+([\.]?[a-z0-9_-]+)*@'.// usuario '[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', // server. $email); Saludos. <hr><font size=2 face=verdana>- Pablo Rigazzi (<img src=http://www.fantabuloso.com/iB_html/non-cgi/emoticons/bullwhip.gif align=absmiddle>)[/CODE] <font size=1 color=#333333>Visita <a href=http://www.web-studio.com.ar>Web Studio</a>[/CODE] |
| |||
Re: Validar email en PHP Me parece que hay un error... hay emails que comienzan con nº, por ejemplo, yo tengo el mail de mi pager, y el de mi celular, y ambos comienzan con nº. Un saludo Porque lo importante no es qué hagamos,<font color=#ff0000> sino cómo lo hagamos...[/CODE] Scorpius |
| ||||
Re: Validar email en PHP No hay problema, entonce si quieren validar direcciones de email que comiencen con numero el nombre de usuario, la regex es asi : $res = ereg( '^[a-z0-9]+([\.]?[a-z0-9_-]+)*@'.// usuario '[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', // server. $email); <hr><font size=2 face=verdana>- Pablo Rigazzi (<img src=http://www.fantabuloso.com/iB_html/non-cgi/emoticons/bullwhip.gif align=absmiddle>)[/CODE] <font size=1 color=#333333>Visita <a href=http://www.web-studio.com.ar>Web Studio</a>[/CODE] |
| ||||
Se puede validar un campo de Email en HTML??
__________________ www.nelhost.net |
| |||
Rriveros .. en tal caso sería en javascript .. Pregunta en el foro adecuado ... igualmente puedes emplear expresiones regulares en javascript. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Muchachos, ta todo bien con esto, por favor, alguien que me xplique la funcion ereg(), la lei en php.net y no entendi nada.. o sea, veo que erifica X cantidad de caracteres y nros... pero .. no logro entender la sintaxis... Ayuden please, que no soy capo en esto. en lo posible onda asi: Cita: Y si pones !L@#L!L@# sale esto, a su vez, lo podes ampliar y hacer !@$#)#UU##JJ#$} y saldra x cosa mas... Muchas gracias al interesado en gastar unos mins y explicarme eso :) |
| ||||
Mi buen amigo y groso administrador Webstudio... Temo decirte que las mayusculas si estan permitidas en los correos electronicos, y MUCHA gente así los escribe. [email protected]
__________________ Manoloweb |
| |||
ereg() es una funcion que utiliza un patron de expresiones regulares. Estas expresiones regulares, no son propias de PHP, si no que estan establecidas enteriormente. El patron, es una cadena que contiene algo asi como comodines, que permiten saber si la cadena de entrada coincide con este. PHP soporta 2 tipos de ER Las PCRE (que son de perl) http://www.php.net/pcre Y las POSIX (donde se incluye ereg()) http://www.php.net/regex Aqui hay un manual: http://www.ignside.net/man/php/regex.php Saludos! |
| ||||
Cita: ManoloWeb, no se en que parte leiste que yo indiqué que no se puedan poner maýusculas, ya que en ningún momento puse eso. Yo mismo tengo direcciones de email con mayúsculas adrede.Mensaje Original por Manoloweb Mi buen amigo y groso administrador Webstudio... Temo decirte que las mayusculas si estan permitidas en los correos electronicos, y MUCHA gente así los escribe. [email protected] Saludos. |
| ||||
Re: Re: Validar email en PHP Cita: Mensaje Original por Ferdy Yo le pondría algo más restrictiva la Reg_Exp de Cluster, algo así valdría:
Código:
Es parecida pero NO es exactamente igual, en este caso no puede haber mayúsculas ya que no están permitidas en los nombres de dominio y tampoco en los usuarios . Se le añade la restricción de que tiene que empezar ( ^ ) y acabar ( $ ) dentro del patrón. Y se le añade el caracter - en los nombres de dominio y en los usuarios.$res = ereg( '^(a-z0-9_]|\\-|\\.)+'. '@'. '(([a-z0-9_]|\\-)+\\.)+'. '[a-z]{2,4}$', $email); Salu2.Ferdy Je je... me equivoque de Administrador... fue Ferdy Saludos a los dos...
__________________ Manoloweb |
| |||
Código PHP: |
| ||||
Validar La Semantica No La Sintactica Holas, , se que existen muchisimas formas de Validar un correo electronico, a esto no s referimos con la sintaxis, pero no nos preguntamos sobre la semantica del correo, , es decir, si el correo realmente existe o no, para que lo utilizemos en nuestras data. . si coloco un email que diga: [email protected] el sistema lo aceptaria y lo guardaria absurdamente, a eso me refiero, . Pues deacuerdo a la cantidad de servidores que existe: yahho.com yahoo.es, hotmail.com, terra.com, mixmail.com, ......, seria que tengo q colorcar toda una lista de correo para verificar?, . Si alguien tiene alguna sugerencia o solucion es bienvenido. Gracias, .
__________________ .: Gildus :. |
| ||||
Ok... puedes hacerlo de la siguiente forma: 1) Adivinas el registro MX de lo que hay detrás de la @ 2) Conectar al servidor MX 3) Mandarle los comandos EHLO/HELO, MAIL FROM y RCPT TO 4) Depende de lo que devuelva el RCPT TO sabes si existe o no: a) Si devuelve 2XX es que la dirección existe b) Si devuelve algo distinto puede que la direccion no exista Así de simple. PD: Manoloweb los estándares asi lo dicen y las cuentas de los sistemas (por lo menos en Unix) no pueden llevar mayusculas, asi que antes de pasarle la expresion regular lo deberías pasar todo a minúsculas. Salu2.Ferdy
__________________ Born to be free Por una sociedad del conocimiento libre |
| ||||
Gracias Ferdy, pero porfavor dime, a lo que te refieres es mandar un mail? y luego ver si te responde o no el servidor con el mensaje 2XX ? O conectarse de otra forma con sockets, ...?, por favor si tienes mas detalles, hazmelo saber. Saludos
__________________ .: Gildus :. |
| ||||
Si, la idea es que te conectes con sockets al registro MX de lo que hay tras la @ en la dirección. Y vayas escribiendo esos comandos. ftp://ftp.rfc-editor.org/in-notes/rfc2821.txt -> aquí tienes el RFC Salu2.Ferdy
__________________ Born to be free Por una sociedad del conocimiento libre |
| |||
Y que hay de esta, es la publica por los señores de DesarrolloWeb.com function comprobar_email($email){ $mail_correcto = 0; //compruebo unas cosas primeras if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) { //miro si tiene caracter . if (substr_count($email,".")>= 1){ //obtengo la terminacion del dominio $term_dom = substr(strrchr ($email, '.'),1); //compruebo que la terminación del dominio sea correcta if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){ //compruebo que lo de antes del dominio sea correcto $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1); $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1); if ($caracter_ult != "@" && $caracter_ult != "."){ $mail_correcto = 1; } } } } } if ($mail_correcto) return 1; else return 0; } |
| |||
Cita: Si bien podría funcionar .. no considera todos los casos además que es más optimo y hasta versatil usar expresiones regulares.Y que hay de esta, es la publica por los señores de DesarrolloWeb.com Fijate que usando expresiones regulares una validación de este estilo (complejo) de cierto patrón no lleva más de una o un par de líneas de código y .. fijate el montón de lógica que hay en el ejemplo que pusistes. Un saludo, Consejo: No todo lo que veas en "desarrolloweb.com" es la panacea. De hecho se quedó hace tiempo "atras" en esto de PHP al menos. Códigos viejos (sólo hay que ver el tutorial sobre sesiones) y ejemplos de ese estilo. Esto no es culpa de "desarrolloweb.com" (bueno .. si, tendrían que "filtrar" tal vez lo que publican con algo más de critério "técnico" al respecto) .. estos comentarios van exclusivamente para los autores respectivos de esos temas. |
| ||||
hola a todos ... se que soy de esos usuarios que tanto se suelen odiar en los foros que apenas escriben pero mis conocimientos de php son francamente nulos ... pero observando vuestros codigos ... hestoy aprendiendo mucho ... sobretodo de cluster ... pero ahora tengo una pequeña duda .. puede un email tener en caracter slash \ ?? cosa que me ha sorprendido mucho y otra cosa puede tener .. en la parte del user ??? ya que nunca lo he visto ... y si no puede tener .. en el user como seria la nueva expresion regular ?? y otra cosa mas (se que es abusar de vuestra paciencia) donde puedo obtener mas informacion de las expresiones regulares ?? gracias a todos !!!!
__________________ SAO |
| |||
Cita: Por mi parte .. lo desconozco. Pero lo que si te puedo afirmar es que la "sintax" de un e-mail lo define un "standard" y debe complir las normas que definan en su "RFC" correspondiente y .. de hecho esas expresiones regulares o código (lógica) que puedas hacer -debería- respetarla para que "valide" todo los casos que cubre dicha descripción de la sintax oficial.puede un email tener en caracter slash \ ?? Por www.rfcfind.net podrías encontrar el RFC concreto que defina la sintax exacta de una dirección de e-mail. Con esto pretendo llegar a que no todo es "PHP" o lo ha de resolver "PHP" sino que .. por ejemplo para esa "validación" de una cadena (que es en el fondo lo que va a tratar PHP) tiene sus própias normas que NO define PHP ..así que habrá que informarse por otro médio "quien" la define y de ahí (con eso en la mano) intentar implementarla bajo la lógica que se requiera. En este caso como hablamos de "cadenas" (strings) y de validación de estas .. para eso podemos recurrir a las expresiones regulares que se usan para eso mismo: validar/encontrar "patrones" en cadenas. Un saludo, |
| |||
Lo dicho anteriormente sería para "validar la sintax" .. En este mensaje se ha hablado no sólo de validar la sintax (1er paso) sino también a su vez de validar la "existencia" al menos de esa cuenta de correo o por lo menos el "domino" si existe y podría asociar un servidor de correo (con sus registros MX o conectando directamente como en otros ejemplos que se han expuesto aquí). Un saludo, |