Foros del Web » Programando para Internet » PHP »

validar campos en email

Estas en el tema de validar campos en email en el foro de PHP en Foros del Web. hace 2 horas que estoy intentando hacer funcionar correctamente mi codigo y aun no puedo, haber si ustedes me pueden ayudar.... el tema es que ...
  #1 (permalink)  
Antiguo 05/02/2004, 00:22
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
validar campos en email

hace 2 horas que estoy intentando hacer funcionar correctamente mi codigo y aun no puedo, haber si ustedes me pueden ayudar....
el tema es que tengo 3 campos "nombre" "email" "otro" y quiero que compruebe si los completaron o no, ademas q' el campo "email" compruebe si el email es correcto y si todo eso esta bien recien mande el email.

Código PHP:
<?

include("variables.php");

$mensaje "";
if (isset(
$_POST["enviar"])){
if(empty(
$_POST[nombre])){
$mensaje .= "Debes escribir un nombre.<br>";
}
if(empty(
$_POST[email])){
$mensaje .= "Debes colocar tu email.<br>";
}
if(empty(
$_POST[otro])){
$mensaje .= "Debes escribir un mensaje.<br>";
}
if (
$mensaje != ""){
echo 
"Se han producido los siguientes errores:<br>".$mensaje;
}
if (!
ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})$",$email)){
echo 
"El e-mail que puso es incorrecto o no tomado como e-mail valido.";
echo 
"<br>";
echo 
"<p align=center><font size=1 face=Tahoma><a href=index.php?ir=3><font color=#006699>Volver</font></a></font></p>";
echo 
"<br>";
} else {
if(
$enviar)
{
$nombre=$_POST["nombre"];
$email=$_POST["email"];
$otro=$_POST["otro"];
$sheader="From:".$nameweb."\nReply-To:".$email2."\n";
$mensaje="nombre (".$nombre.") email (".$email.") mensaje (".$otro.")";
mail("$email2","Contacto",$mensaje,$sheader);
echo 
"El mensaje se envio correctamente!..";
}
}
}
?>
si falta alguno de los campos me tira los correspondientes errores, pero la falla esta en el email, digamos que si en el campo "nombre" y "otro" no se pone nada y en el campo "email" se pone un email, el email se manda sin importarle que los otros campos estan incompletos.

Trate de mil maneras pero no escuentro el error, pero me canse y ustedes que son unos capos seguro que ven el error en un segundo...
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.
  #2 (permalink)  
Antiguo 05/02/2004, 05:38
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 5 meses
Puntos: 5
Código PHP:
<?

include("variables.php");

$mensaje "";
if (isset(
$_POST["enviar"])){
  if(empty(
$_POST[nombre])){
    
$mensaje .= "Debes escribir un nombre.<br>";
  }
  if(empty(
$_POST[email])){
    
$mensaje .= "Debes colocar tu email.<br>";
  }
  if(empty(
$_POST[otro])){
    
$mensaje .= "Debes escribir un mensaje.<br>";
  }
  if (
$mensaje != ""){
    echo 
"Se han producido los siguientes errores:<br>".$mensaje;
  }
  if (!
ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$email)){
    echo 
"El e-mail que puso es incorrecto o no tomado como e-mail valido.";
    echo 
"<br>";
    echo 
"<p align=center><font size=1 face=Tahoma><a href=index.php?ir=3><font color=#006699>Volver</font></a></font></p>";
    echo 
"<br>";
  } else {
    if(
$mensaje == "" && $enviar)
    {
      
$nombre=$_POST["nombre"];
      
$email=$_POST["email"];
      
$otro=$_POST["otro"];
      
$sheader="From:".$nameweb."\nReply-To:".$email2."\n";
      
$mensaje="nombre (".$nombre.") email (".$email.") mensaje (".$otro.")";
      
mail("$email2","Contacto",$mensaje,$sheader);
      echo 
"El mensaje se envio correctamente!..";  
    }
  }
}
?>
No enviabas el mensaje en el caso sólo de que fuera una dirección de email no válida pero no incluías las condiciones que comprobabas antes de campos vacíos.

Sólo he modificado la línea if($mensaje == "" && $enviar) incluyendo que se envíe siempre y cuando sea el email válido y antes no se haya producido ningún mensaje de error.
  #3 (permalink)  
Antiguo 05/02/2004, 05:46
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 5 meses
Puntos: 5
Código PHP:
<?

include("variables.php");

$mensaje "";
if (isset(
$_POST["enviar"])){
  if(empty(
$_POST[nombre])){
    
$mensaje .= "Debes escribir un nombre.<br>";
  }
  if(empty(
$_POST[email])){
    
$mensaje .= "Debes colocar tu email.<br>";
  }
  if(empty(
$_POST[otro])){
    
$mensaje .= "Debes escribir un mensaje.<br>";
  }
  if (
$mensaje != ""){
    echo 
"Se han producido los siguientes errores:<br>".$mensaje;
  }
  if (!
ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$email)){
    echo 
"El e-mail que puso es incorrecto o no tomado como e-mail valido.";
    echo 
"<br>";
    echo 
"<p align=center><font size=1 face=Tahoma><a href=index.php?ir=3><font color=#006699>Volver</font></a></font></p>";
    echo 
"<br>";
  } else {
    if(
$mensaje == "" && $enviar)
    {
      
$nombre=$_POST["nombre"];
      
$email=$_POST["email"];
      
$otro=$_POST["otro"];
      
$sheader="From:".$nameweb."\nReply-To:".$email2."\n";
      
$mensaje="nombre (".$nombre.") email (".$email.") mensaje (".$otro.")";
      
mail("$email2","Contacto",$mensaje,$sheader);
      echo 
"El mensaje se envio correctamente!..";  
    }
  }
}
?>
No enviabas el mensaje en el caso sólo de que fuera una dirección de email no válida pero no incluías las condiciones que comprobabas antes de campos vacíos.

Sólo he modificado la línea if($mensaje == "" && $enviar) incluyendo que se envíe siempre y cuando sea el email válido y antes no se haya producido ningún mensaje de error.
  #4 (permalink)  
Antiguo 05/02/2004, 11:13
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
muchas gracias capo!!!
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.
  #5 (permalink)  
Antiguo 05/02/2004, 11:16
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 5 meses
Puntos: 5
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:58.