Foros del Web » Programando para Internet » PHP »

funcion eregi no funciona para validar email

Estas en el tema de funcion eregi no funciona para validar email en el foro de PHP en Foros del Web. Hola estoy intentando validar un campo para escribir el email, probe la funcion eregi() , pero me dice que es absoleta en su lugar la ...
  #1 (permalink)  
Antiguo 05/06/2012, 06:40
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 7 meses
Puntos: 10
funcion eregi no funciona para validar email

Hola estoy intentando validar un campo para escribir el email, probe la funcion eregi() , pero me dice que es absoleta en su lugar la cambie por preg_match(), pero resulta que esta no es la alternativa alguien me podria decir que funcion debo utilizar, saludos.
  #2 (permalink)  
Antiguo 05/06/2012, 07:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 7 meses
Puntos: 10
Respuesta: funcion eregi no funciona para validar email

Muestro como probe con la muncion preg_match():

Código PHP:
Ver original
  1. return (preg_match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$', $value)) ? 1 : 0;

me da este error:

[function.preg-match]: No ending delimiter '^' found LOCATION: C:\wamp\www\validar_formulario\validacion.php, line 45
  #3 (permalink)  
Antiguo 05/06/2012, 07:13
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: funcion eregi no funciona para validar email

Hay muchiiiiiiiiiiiisimas funciones para validar el email.. usando google puedes encontrar MILES de ellas, y elegir la que más te guste, la que más segura creas que es, o la que mejor se adapte a tu caso..

aquí te dejo una:

Código PHP:
Ver original
  1. function check_email_address($email)
  2. {
  3.     // Primero, checamos que solo haya un símbolo @, y que los largos sean correctos
  4.   if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
  5.     {
  6.         // correo inválido por número incorrecto de caracteres en una parte, o número incorrecto de símbolos @
  7.     return false;
  8.   }
  9.   // se divide en partes para hacerlo más sencillo
  10.   $email_array = explode("@", $email);
  11.   $local_array = explode(".", $email_array[0]);
  12.   for ($i = 0; $i < sizeof($local_array); $i++)
  13.     {
  14.     if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
  15.         {
  16.       return false;
  17.     }
  18.   }
  19.   // se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
  20.     if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
  21.     {
  22.      $domain_array = explode(".", $email_array[1]);
  23.      if (sizeof($domain_array) < 2)
  24.          {
  25.         return false; // No son suficientes partes o secciones para se un dominio
  26.      }
  27.      for ($i = 0; $i < sizeof($domain_array); $i++)
  28.          {
  29.         if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
  30.                 {
  31.            return false;
  32.         }
  33.      }
  34.   }
  35.   return true;
  36. }

Código PHP:
Ver original
  1. if (check_email_address($email))
  2. {
  3.    echo $email . ' es una dirección válida de correo.';
  4. }
  5. else
  6. {
  7.    echo $email . ' no es una dirección válida de correo.';
  8. }

PD: Deberías usar el buscador que hay muchos posts así.
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #4 (permalink)  
Antiguo 05/06/2012, 07:32
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 7 meses
Puntos: 10
Respuesta: funcion eregi no funciona para validar email

hola oNefl0w189, el problema que tengo es que la funcion eregi() o ereg(), son absoletas pero segun el manual de php su substituto es preg_match(), pero me sigue dando error, alguna idea?

Saludos.
  #5 (permalink)  
Antiguo 05/06/2012, 07:36
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: funcion eregi no funciona para validar email

Prueba con esto:

Código PHP:
Ver original
  1. return (preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$', $value)) ? 1 : 0;
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #6 (permalink)  
Antiguo 05/06/2012, 07:44
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 7 meses
Puntos: 10
Respuesta: funcion eregi no funciona para validar email

oNefl0w189 me sigue dando el mismo error pero con un '/', gracias de todas formas por tu ayuda, saludos.
  #7 (permalink)  
Antiguo 05/06/2012, 08:04
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 12 años
Puntos: 35
Respuesta: funcion eregi no funciona para validar email

toda expresion con preg_match debe empezar con / y terminar con / revisa aqui para ver si te puede servir.
http://www.mclibre.org/consultar/php...regulares.html
  #8 (permalink)  
Antiguo 05/06/2012, 08:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 7 meses
Puntos: 10
Respuesta: funcion eregi no funciona para validar email

Bueno foro, mirando el codigo con delicadeza no encontraba mi error, pero despues de darle vueltas lei el error que me daba y mas facil no podia ser encontrarlo era simplemente que me estaba faltando el delimitador final en mi cadena osea un '^' al final de mi expresion, bueno gracias a todos de todas formas, un saludo.
  #9 (permalink)  
Antiguo 05/06/2012, 08:17
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 7 meses
Puntos: 10
Respuesta: funcion eregi no funciona para validar email

Cita:
Iniciado por maxpower2008 Ver Mensaje
toda expresion con preg_match debe empezar con / y terminar con / revisa aqui para ver si te puede servir.
http://www.mclibre.org/consultar/php...regulares.html
bueno mi problema era que me faltaba el limitador final, pero yo no añadi / al principio ni al final y me funciono muy bien, para usar preg_match no es obligatorio usar /, ya que yo no lo use, si me lo puedes aclarar ya que estoy en proceso de aprendizaje, saludos.
  #10 (permalink)  
Antiguo 05/06/2012, 08:40
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 12 años
Puntos: 35
Respuesta: funcion eregi no funciona para validar email

Pues en la pagina hablan de como crear los patrones esta muy bien explicado para lo q necesites, esto lo tome del sitio

Cita:
Expresiones regulares compatibles con Perl
Funciones de expresiones regulares compatibles con Perl

La función de expresiones regulares compatibles con Perl preg_match($patron, $cadena [, $matriz_coincidencias [, $modificadores [, $desplazamiento]]]) compara una cadena con un patrón y devuelve 1 si el patrón ha coincidido o 0 si no. La primera coincidencia encontrada se puede guardar en el argumento opcional $matriz_coincidencias y, si se añade el modificador PREG_OFFSET_CAPTURE, se guarda también en el argumento opcional $matriz_coincidencias la posición de la coincidencia encontrada. El argumento opcional $desplazamiento es un número que permite indicar en qué carácter se inicia la búsqueda.

Los patrones deben empezar y acabar con el carácter / (barra).
  #11 (permalink)  
Antiguo 05/06/2012, 09:23
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 8 años, 11 meses
Puntos: 61
Respuesta: funcion eregi no funciona para validar email

Esta funcion podria servirte .

Código PHP:
Ver original
  1. <?php
  2. $email = "[email protected]";
  3.  
  4. if(!filter_var($email, FILTER_VALIDATE_EMAIL))
  5.   {
  6.   echo "E-mail es invalido";
  7.   }
  8. else
  9.   {
  10.   echo "E-mail es valido";
  11.   }
  12. ?>

Saludos
  #12 (permalink)  
Antiguo 06/06/2012, 05:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 7 meses
Puntos: 10
Respuesta: funcion eregi no funciona para validar email

gracias a todos por vuestras respuestas, saludos.

Etiquetas: email, eregi, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:06.