Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/03/2012, 14:18
Avatar de IsaBelM
IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: problema con validacion de campo e-mail en php

prueba con esto
Cita:
<?php
function vMail($correo) {
// Ninguna cuenta de email puede tener menos de 5 caracteres "[email protected]"
if (strlen($correo) < 5) {
return false;
}

$localOK = "(^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\'[^(\\|\')]{0,62}\'))$)";
$ipOK = "(^\[?[0-9\.]+\]?$)";
$dominoOK = "(^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$)";

// Divimos el correo en 3 secciones
$correo_array = explode("@", $correo);
$local_array = explode(".", $correo_array[0]);
$domain_array = explode(".", $correo_array[1]);

// Hay más de una @
if (sizeof($correo_array) != 2) {
return false;
}


// Incorrecto número de caracteres en alguna de las dos partes
if (strlen($correo_array[0]) < 1 || strlen($correo_array[1]) < 1) {
return false;
}

// Buscamos que el email no tenga espacios en blancos "a @b.c"
if (strpos($correo, " ") != 0) {
return false;
}


for ($i = 0; $i < sizeof($local_array); $i++) {
if (!ereg($localOK, $local_array[$i])) {
return false;
}
}

// Se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
if (!ereg($ipOK, $correo_array[1])) {
// Incorrecto número de secciones por exceso o defecto para ser un dominio
if (sizeof($domain_array) < 2 || sizeof($domain_array) > 3) {
return false;
}

for ($i = 0; $i < sizeof($domain_array); $i++) {
if (!ereg($dominoOK, $domain_array[$i])) {
return false;
}
}
}
return true;
}


if (vMail($_POST["email"])) {
echo "<b>".$_POST["email"]."</b> email válido";
} else {
echo "<b>".$_POST["email"]."</b> email NO válido";
}
?>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}