Autor
|
Tema: Validacion de correos en php (Leído 4,111 veces)
|
Dannysoft
Desconectado
Mensajes: 410
¡¡ Al Asalto !!
|
saludos foro, tengo un formulario escrito en php y bueno mi cliente me pide que mediante este formulario solo se puedan mandar correos de empresas menos correos como hotmail, mixmail, latinmal, etc, los formularios son estos: contactenos: <form action="enviar.php" method="post" name="form1" id="form1" onSubmit="MM_validateForm('nombre','','R','email','','R','compania','','R','direccion','','R','pais','','R','ciudad','','R');return document.MM_returnValue"> <table width="450" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td bgcolor="#D5F4FF"> <div align="center"> <table width="440" border="0" align="center" cellpadding="0" cellspacing="0"> <tr bgcolor="#D5F4FF"> <td colspan="2" valign="top" class="texto"><strong>* Campos requeridos</strong></td> </tr> <tr bgcolor="#D5F4FF"> <td colspan="2" valign="top" class="texto"> </td> </tr> <tr bgcolor="#D5F4FF"> <td colspan="2" valign="top" class="texto"><strong>INFORMACION PERSONAL:</strong></td> </tr> <tr bgcolor="#D5F4FF"> <td valign="top" class="texto"><strong>Nombre:</strong></td> <td valign="top"> <div align="left"> <input name="nombre" type="text" id="nombre3" size="35"> <font color="#000000">*</font></div></td> </tr> <tr bgcolor="#D5F4FF"> <td width="100" valign="top" class="texto"><strong>Email:</strong></td> <td valign="top"> <div align="left"> <label> <input name="email" type="text" id="email2" size="30"> * </label> </div></td> </tr> <tr> <td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Teléfono:</strong></td> <td valign="top" bgcolor="#D5F4FF"><div align="left"> <input name="telefono" type="text" id="telefono2"> * </div></td> </tr> <tr> <td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Ocupación:</strong></td> <td valign="top" bgcolor="#D5F4FF"><div align="left"> <input name="ocupacion" type="text" id="ocupacion2" size="30"> </div></td> </tr> <tr> <td colspan="2" valign="top" bgcolor="#D5F4FF" class="texto"> </td> </tr> <tr> <td colspan="2" valign="top" bgcolor="#D5F4FF" class="texto"><strong>INFORMACION DE LA COMPAÑIA: </strong></td> </tr> <tr> <td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Compañia:</strong></td> <td valign="top" bgcolor="#D5F4FF"><div align="left"> <input name="compania" type="text" id="compania2"> * </div></td> </tr> <tr> <td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Dirección:</strong></td> <td valign="top" bgcolor="#D5F4FF"><div align="left"> <input name="direccion" type="text" id="direccion2" size="30"> * </div></td> </tr> <tr> <td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Pais:</strong></td> <td valign="top" bgcolor="#D5F4FF"><div align="left"> <input name="pais" type="text" id="pais3" size="30"> *</div></td> </tr> <tr> <td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Ciudad:</strong></td> <td valign="top" bgcolor="#D5F4FF"><div align="left"> <input name="ciudad" type="text" id="ciudad2" size="30"> *</div></td> </tr> <tr> <td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Comentario:</strong></td> <td valign="top" bgcolor="#D5F4FF"><div align="left"> <textarea name="comentario" cols="35" rows="10" id="textarea"></textarea> </div></td> </tr> <tr> <td valign="top" bgcolor="#D5F4FF" class="texto"> </td> <td valign="top" bgcolor="#D5F4FF"><label> </label> <div align="left"> </div></td> </tr> <tr> <td colspan="2"><table width="440" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <th scope="col"><div align="center"> <label> <input type="submit" name="Submit" value="Enviar"> </label> </div></th> <th scope="col"><div align="center"> <label> <input type="reset" name="Submit2" value="Limpiar"> </label> </div></th> </tr> </table></td> </tr> </table> </div></td> </tr> </table> </form>
enviar: <?
$destinatario="miempresa@dominio.com";
$asunto="Cotizacion desde la pagina web";
// Obtenemos y traducimos el nombre del día $dia=date("l"); if ($dia=="Monday") $dia="Lunes"; if ($dia=="Tuesday") $dia="Martes"; if ($dia=="Wednesday") $dia="Miércoles"; if ($dia=="Thursday") $dia="Jueves"; if ($dia=="Friday") $dia="Viernes"; if ($dia=="Saturday") $dia="Sabado"; if ($dia=="Sunday") $dia="Domingo";
// Obtenemos el número del día $dia2=date("d");
// Obtenemos y traducimos el nombre del mes $mes=date("F"); if ($mes=="January") $mes="Enero"; if ($mes=="February") $mes="Febrero"; if ($mes=="March") $mes="Marzo"; if ($mes=="April") $mes="Abril"; if ($mes=="May") $mes="Mayo"; if ($mes=="June") $mes="Junio"; if ($mes=="July") $mes="Julio"; if ($mes=="August") $mes="Agosto"; if ($mes=="September") $mes="Setiembre"; if ($mes=="October") $mes="Octubre"; if ($mes=="November") $mes="Noviembre"; if ($mes=="December") $mes="Diciembre";
// Obtenemos el año $ano=date("Y");
// Imprimimos la fecha completa $fecha= "$dia $dia2 de $mes de $ano";
$personares = $_POST['nombre']; $email2 = $_POST['email'];
$cuerpo = "La siguiente cotizacion fue enviada con fecha: ".$fecha."\n\n"; $cuerpo .= "Nombre: ".$_POST["nombre"]."\n"; $cuerpo .= "E-mail: ".$_POST["email"]."\n\n"; $cuerpo .= "Telefono: ".$_POST["telefono"]."\n"; $cuerpo .= "Ocupacion: ".$_POST["ocupacion"]."\n"; $cuerpo .= "Compania:: ".$_POST["compania"]."\n"; $cuerpo .= "Direccion: ".$_POST["direccion"]."\n"; $cuerpo .= "Pais: ".$_POST["pais"]."\n"; $cuerpo .= "Ciudad: ".$_POST["ciudad"]."\n"; $cuerpo .= "Comentario: ".$_POST['comentario'];
//$adjuntar=$attachment[] $cabecera.="From:".$personares." <".$email2."> \n"; mail ($destinatario,$asunto,$cuerpo,$cabecera);
echo "<script language=javascript> alert('Tu mensaje ha sido enviado correctamente en 24 horas tendras una respuesta a tu solicitud, Gracias'); window.location.href='contactenos.htm'; </script>"; ?>
mi pregunta es como puedo hacer eso, gracias por la ayuda que me den..
|
|
|
En línea
|
No hay perfeccion sin esfuerzo...
|
|
|
alone-in-the-chat
Desconectado
Mensajes: 587
|
Parece tan sencillo (espero no equivocarme) como validar que la variable $_POST['email'] no tengo dentro cadenas como hotmail, mixmail, latinmal, etc,
Puedes usar strstr o strpos
Saludos y suerte.
|
|
|
En línea
|
Because maybe You're gonna be the one that saves me And after all You're my wonderwall d[n_n]b
|
|
|
Dannysoft
Desconectado
Mensajes: 410
¡¡ Al Asalto !!
|
hola, disculpa la ignorancia pero, puedes ponerme un ejemplo de lo que me acabas de decir??
|
|
|
En línea
|
No hay perfeccion sin esfuerzo...
|
|
|
alone-in-the-chat
Desconectado
Mensajes: 587
|
<?php if (strpos("@hotmail.com",$_POST['email'] ) === false) { //envia correo }else{ //no envies correo } ?>
Saludos
|
|
|
En línea
|
Because maybe You're gonna be the one that saves me And after all You're my wonderwall d[n_n]b
|
|
|
Dannysoft
Desconectado
Mensajes: 410
¡¡ Al Asalto !!
|
ok lo voy a probar luego les cuento que fue ...
|
|
|
En línea
|
No hay perfeccion sin esfuerzo...
|
|
|
Dannysoft
Desconectado
Mensajes: 410
¡¡ Al Asalto !!
|
aver bueno he probado el codigo que me dieron y no he podido restringir los correos de hotmail, el codigo que use es este: <?
$destinatario="micorreo@dominio.com";
$asunto="Cotizacion desde la pagina web";
// Obtenemos y traducimos el nombre del día $dia=date("l"); if ($dia=="Monday") $dia="Lunes"; if ($dia=="Tuesday") $dia="Martes"; if ($dia=="Wednesday") $dia="Miércoles"; if ($dia=="Thursday") $dia="Jueves"; if ($dia=="Friday") $dia="Viernes"; if ($dia=="Saturday") $dia="Sabado"; if ($dia=="Sunday") $dia="Domingo";
// Obtenemos el número del día $dia2=date("d");
// Obtenemos y traducimos el nombre del mes $mes=date("F"); if ($mes=="January") $mes="Enero"; if ($mes=="February") $mes="Febrero"; if ($mes=="March") $mes="Marzo"; if ($mes=="April") $mes="Abril"; if ($mes=="May") $mes="Mayo"; if ($mes=="June") $mes="Junio"; if ($mes=="July") $mes="Julio"; if ($mes=="August") $mes="Agosto"; if ($mes=="September") $mes="Setiembre"; if ($mes=="October") $mes="Octubre"; if ($mes=="November") $mes="Noviembre"; if ($mes=="December") $mes="Diciembre";
// Obtenemos el año $ano=date("Y");
// Imprimimos la fecha completa $fecha= "$dia $dia2 de $mes de $ano";
$personares = $_POST['nombre']; $email2 = $_POST['email'];
$cuerpo = "La siguiente cotizacion fue enviada con fecha: ".$fecha."\n\n"; $cuerpo .= "Nombre: ".$_POST["nombre"]."\n"; $cuerpo .= "E-mail: ".$_POST["email"]."\n\n"; $cuerpo .= "Telefono: ".$_POST["telefono"]."\n"; $cuerpo .= "Ocupacion: ".$_POST["ocupacion"]."\n"; $cuerpo .= "Compania:: ".$_POST["compania"]."\n"; $cuerpo .= "Direccion: ".$_POST["direccion"]."\n"; $cuerpo .= "Pais: ".$_POST["pais"]."\n"; $cuerpo .= "Ciudad: ".$_POST["ciudad"]."\n"; $cuerpo .= "Comentario: ".$_POST['comentario']; if (strpos("@hotmail.com",$_POST['email'] ) === false) { //envia correo }else{ //no envies correo }
//$adjuntar=$attachment[] $cabecera.="From:".$personares." <".$email2."> \n"; mail ($destinatario,$asunto,$cuerpo,$cabecera);
echo "<script language=javascript> alert('Tu mensaje ha sido enviado correctamente en 24 horas tendras una respuesta a tu solicitud, Gracias'); window.location.href='ig_contactenos.php'; </script>"; ?>
me sale un mensaje de error cuando quiero enviar ("Parse error: syntax error, unexpected $end in /home/ig/public_html/enviar.php on line 68") mi pregunta es que estoy haciendo mal ??
|
|
|
En línea
|
No hay perfeccion sin esfuerzo...
|
|
|
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
Desconectado
Mensajes: 5.110
|
Te falta cerrar una llave '}', cuentalas.
Suerte
|
|
|
En línea
|
|
|
|
Dannysoft
Desconectado
Mensajes: 410
¡¡ Al Asalto !!
|
tenias razon en las llaves pero ahora que lo acomode el correo me sigue llegando o sea no me restringe si es de hotmail igual me llega y no lo bloquea: <?
$destinatario="correo@dominio.com";
$asunto="Cotizacion desde la pagina web";
// Obtenemos y traducimos el nombre del día $dia=date("l"); if ($dia=="Monday") $dia="Lunes"; if ($dia=="Tuesday") $dia="Martes"; if ($dia=="Wednesday") $dia="Miércoles"; if ($dia=="Thursday") $dia="Jueves"; if ($dia=="Friday") $dia="Viernes"; if ($dia=="Saturday") $dia="Sabado"; if ($dia=="Sunday") $dia="Domingo";
// Obtenemos el número del día $dia2=date("d");
// Obtenemos y traducimos el nombre del mes $mes=date("F"); if ($mes=="January") $mes="Enero"; if ($mes=="February") $mes="Febrero"; if ($mes=="March") $mes="Marzo"; if ($mes=="April") $mes="Abril"; if ($mes=="May") $mes="Mayo"; if ($mes=="June") $mes="Junio"; if ($mes=="July") $mes="Julio"; if ($mes=="August") $mes="Agosto"; if ($mes=="September") $mes="Setiembre"; if ($mes=="October") $mes="Octubre"; if ($mes=="November") $mes="Noviembre"; if ($mes=="December") $mes="Diciembre";
// Obtenemos el año $ano=date("Y");
// Imprimimos la fecha completa $fecha= "$dia $dia2 de $mes de $ano";
$personares = $_POST['nombre']; $email2 = $_POST['email'];
$cuerpo = "La siguiente cotizacion fue enviada con fecha: ".$fecha."\n\n"; $cuerpo .= "Nombre: ".$_POST["nombre"]."\n"; $cuerpo .= "E-mail: ".$_POST["email"]."\n\n"; $cuerpo .= "Telefono: ".$_POST["telefono"]."\n"; $cuerpo .= "Ocupacion: ".$_POST["ocupacion"]."\n"; $cuerpo .= "Compania:: ".$_POST["compania"]."\n"; $cuerpo .= "Direccion: ".$_POST["direccion"]."\n"; $cuerpo .= "Pais: ".$_POST["pais"]."\n"; $cuerpo .= "Ciudad: ".$_POST["ciudad"]."\n"; $cuerpo .= "Comentario: ".$_POST['comentario']; if (strpos("@hotmail.com",$_POST['email'] ) === false) { //envia correo } else{ //no envies correo }
//$adjuntar=$attachment[] $cabecera.="From:".$personares." <".$email2."> \n"; mail ($destinatario,$asunto,$cuerpo,$cabecera);
echo "<script language=javascript> alert('Tu mensaje ha sido enviado correctamente en 24 horas tendras una respuesta a tu solicitud, Gracias'); window.location.href='ig_contactenos.php'; </script>"; ?>
que estoy haciendo mal ahora?
|
|
|
En línea
|
No hay perfeccion sin esfuerzo...
|
|
|
HadesDark
Desconectado
Mensajes: 42
|
Hola, una forma facil para que no acepte las direcciones hotmail es usando la funcion eregi(), acá te dejo un ejemplo q hice rapidamente para q te lleves una idea: <?php
$texto="direccion@hotmail.com";
if(eregi("hotmail",$texto)) { echo "No ingrese correo hotmail por favor"; } else { echo "Correcto el e-mail"; } ?>
Lo bueno de eregi es q no importa si esta en mayusculas o minusculas, asi q valida tanto mayusculas como minusculas sin problema, en pocas palabras no usa el case sensitive como ereg().
|
|
« Última modificación: 10 Agosto 2007, 19:52 pm por HadesDark »
|
En línea
|
|
|
|
yeikos
Desconectado
Mensajes: 1.424
|
<?php function fncEmail($str) { $strFilter = array("hotmail.com", "mixmail.com", "latinmail.com"); $expEmail = ereg('^[a-z0-9]+([\.]?[a-z0-9_-]+)*@[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', $str); if ($expEmail == 1) { for ($i=0;$i<count($strFilter);$i++) { if ($expFilter[1] == $strFilter[$i]) { return 0; } } return 1; } else { return 0; } } if (fncEmail("user@mail.com") == 1) { echo "Direcci&#243;n correcta"; } else { echo "Direcci&#243;n incorrecta"; } ?>
|
|
|
En línea
|
|
|
|
|
|