Foros del Web » Programando para Internet » PHP »

Validacion de mail con php ¿que hice mal?

Estas en el tema de Validacion de mail con php ¿que hice mal? en el foro de PHP en Foros del Web. Hola, estoy intentando validar el mail con php y no se porque la funcion de validacion me devuelve un valor vacio...no me funciona...aca les pego ...
  #1 (permalink)  
Antiguo 30/08/2008, 15:59
 
Fecha de Ingreso: julio-2003
Mensajes: 52
Antigüedad: 20 años, 9 meses
Puntos: 0
Exclamación Validacion de mail con php ¿que hice mal?

Hola, estoy intentando validar el mail con php y no se porque la funcion de validacion me devuelve un valor vacio...no me funciona...aca les pego esa parte del codigo a ver si me pueden ayudar. Gracias!

Código:
$email = $_REQUEST['email'];
$notas = $_REQUEST['notas'];
$repemail = $_REQUEST['repemail'];
$repmatricula = $_REQUEST['repmatricula'];
//*************************************************
//Funcion Verficar formato del correo post insert
//*************************************************
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;
}
$mailc="$mail_correcto";
//*************************************************
//*************************************************
//validacion de data post insert
//*************************************************
if($_REQUEST['nombre']==NULL) { echo "<script>alert('DEBE ESCRIBIR SU NOMBRE') | history.back()</script>"; mysql_close($con);}
elseif($_REQUEST['matricula']==NULL) { mysql_close($con); echo "<script>alert('DEBE ESCRIBIR SU MATRICULA') | history.back()</script>"; }
elseif($_REQUEST['periodo']==NULL) { mysql_close($con); echo "<script>alert('DEBE ESCRIBIR EL PERIODO EN EL CUAL HIZO EL CURSO') | history.back()</script>"; }
elseif($_REQUEST['fecha_r']==NULL) { mysql_close($con); echo "<script>alert('DEBE ESCRIBIR LA FECHA EN QUE TOMO LA DOCENCIA DEL CURSO') | history.back()</script>"; }
elseif($_REQUEST['titulo']==NULL) { mysql_close($con); echo "<script>alert('DEBE ESCRIBIR EL TITULO DEL CURSO REALIZADO') | history.back()</script>"; }
elseif($_REQUEST['profesor']==NULL) { mysql_close($con); echo "<script>alert('DEBE ESCRIBIR QUIEN FUE SU PROFESOR') | history.back()</script>"; }
elseif($_REQUEST['email']==NULL) { mysql_close($con); echo "<script>alert('DEBE ESCRIBIR SU CORREO ELECTRONICO') | history.back()</script>"; }
elseif($_REQUEST['email']!==$_REQUEST['repemail']) { mysql_close($con); echo "<script>alert('POR FAVOR VERIFIQUE EL CORREO ELECTRONICO') | history.back()</script>"; }
elseif($_REQUEST['matricula']!==$_REQUEST['repmatricula']) { mysql_close($con); echo "<script>alert('POR FAVOR VERIFIQUE EL NUMERO DE MATRICULA') | history.back()</script>"; }
elseif($mailc != "1") { mysql_close($con); echo "<script>alert('CORREO ELECTRONICO NO VALIDO') | history.back()</script>"; }

else {
//*************************************************
//insert
//*************************************************

mysql_query("INSERT INTO
  #2 (permalink)  
Antiguo 30/08/2008, 17:33
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Validacion de mail con php ¿que hice mal?

hacela mas facil con una expresion regular

yo uso esta

Código PHP:
 function isEmail($email){
            return (bool)
preg_match('/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/',$email);
        } 
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 30/08/2008, 19:10
 
Fecha de Ingreso: julio-2003
Mensajes: 52
Antigüedad: 20 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Validacion de mail con php ¿que hice mal?

la puse pero ahora me devuelve el mail en la variable envez de true or false
¿alguna idea?

Cita:
Iniciado por emiliodeg Ver Mensaje
hacela mas facil con una expresion regular

yo uso esta

Código PHP:
 function isEmail($email){
            return (bool)
preg_match('/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/',$email);
        } 
  #4 (permalink)  
Antiguo 30/08/2008, 19:11
 
Fecha de Ingreso: julio-2003
Mensajes: 52
Antigüedad: 20 años, 9 meses
Puntos: 0
Mensaje Respuesta: Validacion de mail con php ¿que hice mal?

la puse pero ahora me devuelve el mail en la variable envez de true or false
¿alguna idea?

Código:
$email = $_REQUEST['email'];
$notas = $_REQUEST['notas'];
$repemail = $_REQUEST['repemail'];
$repmatricula = $_REQUEST['repmatricula'];
//*************************************************
//Funcion Verficar formato del correo post insert
//*************************************************
  function isEmail($email){
            return (bool)preg_match('/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/',$email);
        }  
$mailc="isEmail($email)";
echo "$mailc";
//*************************************************
//*************************************************
//validacion de data post insert
//*************************************************
if($_REQUEST['
Cita:
Iniciado por emiliodeg Ver Mensaje
hacela mas facil con una expresion regular

yo uso esta

Código PHP:
 function isEmail($email){
            return (bool)
preg_match('/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/',$email);
        } 
  #5 (permalink)  
Antiguo 30/08/2008, 19:25
Avatar de don_fransisco  
Fecha de Ingreso: junio-2004
Mensajes: 193
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Validacion de mail con php ¿que hice mal?

Es una funcion usala asi

FUNCION :

Código PHP:
function isEmail($email){
            return (bool)
preg_match('/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/',$email);
        } 
SU USO :

Código PHP:
if(isMail($email)){
   echo 
"ok";
}else{
  echo 
"email es incorrecto";

__________________
www.webeconomicas.cl
  #6 (permalink)  
Antiguo 30/08/2008, 23:31
 
Fecha de Ingreso: julio-2003
Mensajes: 52
Antigüedad: 20 años, 9 meses
Puntos: 0
Mensaje Respuesta: Validacion de mail con php ¿que hice mal?

Okey la aplique como dijiste, pero ahora recibo un nuevo error:Call to undefined function ismail()

no se porque si defino la funcion antes de usarla... aqui va una copia del codigo

Muchas gracias por su ayuda :)

Código:
$email = $_REQUEST['email'];
//*************************************************
//Funcion Verficar formato del correo post insert
//*************************************************
function isEmail($email){
            return (bool)preg_match('/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/',$email);
        }  
if(isMail($email)){
   echo "ok";
}else{
  echo "email es incorrecto";
}

Cita:
Iniciado por don_fransisco Ver Mensaje
Es una funcion usala asi

FUNCION :

Código PHP:
function isEmail($email){
            return (bool)
preg_match('/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/',$email);
        } 
SU USO :

Código PHP:
if(isMail($email)){
   echo 
"ok";
}else{
  echo 
"email es incorrecto";

  #7 (permalink)  
Antiguo 31/08/2008, 10:48
Avatar de don_fransisco  
Fecha de Ingreso: junio-2004
Mensajes: 193
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Validacion de mail con php ¿que hice mal?

el nombre de la funcion es isEmail() con la "E"


if(isEmail($email)){
echo "ok";
}else{
echo "email es incorrecto";
}
__________________
www.webeconomicas.cl
  #8 (permalink)  
Antiguo 31/08/2008, 10:51
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Validacion de mail con php ¿que hice mal?

Yo utilizaría filter_var(), es más sencillo y está para esto (desconozco si da mejor o peor rendimiento, pero ahí está):

filter_var('[email protected]', FILTER_VALIDATE_EMAIL);

Nos olvidamos de buscar expresiones regulares.
  #9 (permalink)  
Antiguo 31/08/2008, 11:35
 
Fecha de Ingreso: julio-2003
Mensajes: 52
Antigüedad: 20 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Validacion de mail con php ¿que hice mal?

Perfecto! ya funciona....el trasnocho me tiene segato jeje

Gracias a todos!

Cita:
Iniciado por don_fransisco Ver Mensaje
el nombre de la funcion es isEmail() con la "E"


if(isEmail($email)){
echo "ok";
}else{
echo "email es incorrecto";
}
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 16:40.