elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Validacion de correos en php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Validacion de correos en php  (Leído 4,096 veces)
Dannysoft


Desconectado Desconectado

Mensajes: 410


¡¡ Al Asalto !!


Ver Perfil
Validacion de correos en php
« en: 18 Julio 2007, 18:23 pm »

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:
Código:
<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">&nbsp;</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&eacute;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&oacute;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">&nbsp;</td>
                  </tr>
                  <tr>
                    <td colspan="2" valign="top" bgcolor="#D5F4FF" class="texto"><strong>INFORMACION
                      DE LA COMPA&Ntilde;IA: </strong></td>
                  </tr>
                  <tr>
                    <td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Compa&ntilde;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&oacute;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">&nbsp;</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:

Código:
<?

$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 Desconectado

Mensajes: 587


Ver Perfil
Re: Validacion de correos en php
« Respuesta #1 en: 18 Julio 2007, 18:43 pm »


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 Desconectado

Mensajes: 410


¡¡ Al Asalto !!


Ver Perfil
Re: Validacion de correos en php
« Respuesta #2 en: 18 Julio 2007, 21:20 pm »

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 Desconectado

Mensajes: 587


Ver Perfil
Re: Validacion de correos en php
« Respuesta #3 en: 18 Julio 2007, 21:39 pm »

Código
  1.  
  2. <?php
  3. if (strpos("@hotmail.com",$_POST['email'] ) === false)
  4. {
  5. //envia correo
  6. }else{
  7. //no envies correo
  8. }
  9. ?>
  10.  

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 Desconectado

Mensajes: 410


¡¡ Al Asalto !!


Ver Perfil
Re: Validacion de correos en php
« Respuesta #4 en: 20 Julio 2007, 18:28 pm »

ok lo voy a probar luego les cuento que fue ...
En línea

No hay perfeccion sin esfuerzo...
Dannysoft


Desconectado Desconectado

Mensajes: 410


¡¡ Al Asalto !!


Ver Perfil
Re: Validacion de correos en php
« Respuesta #5 en: 9 Agosto 2007, 23:44 pm »

aver bueno he probado el codigo que me dieron y no he podido restringir los correos de hotmail, el codigo que use es este:
Código:

<?

$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 Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Validacion de correos en php
« Respuesta #6 en: 10 Agosto 2007, 03:42 am »

Te falta cerrar una llave '}', cuentalas.

Suerte
En línea

Dannysoft


Desconectado Desconectado

Mensajes: 410


¡¡ Al Asalto !!


Ver Perfil
Re: Validacion de correos en php
« Respuesta #7 en: 10 Agosto 2007, 18:24 pm »

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:

Código:
<?

$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 Desconectado

Mensajes: 42



Ver Perfil
Re: Validacion de correos en php
« Respuesta #8 en: 10 Agosto 2007, 19:49 pm »

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:

Código:
<?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 Desconectado

Mensajes: 1.424



Ver Perfil
Re: Validacion de correos en php
« Respuesta #9 en: 10 Agosto 2007, 21:02 pm »

Código
  1. <?php
  2.  
  3. function fncEmail($str) {
  4. $strFilter = array("hotmail.com", "mixmail.com", "latinmail.com");
  5. $expEmail = ereg('^[a-z0-9]+([\.]?[a-z0-9_-]+)*@[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', $str);
  6.  
  7. if ($expEmail == 1) {
  8. $expFilter = explode("@", $str);
  9. for ($i=0;$i<count($strFilter);$i++) {
  10. if ($expFilter[1] == $strFilter[$i]) {
  11. return 0;
  12. }
  13. }
  14.  
  15. return 1;
  16.  
  17. } else {
  18. return 0;
  19. }
  20. }
  21.  
  22. if (fncEmail("user@mail.com") == 1) {
  23. echo "Direcci&#38;#243;n correcta";
  24. } else {
  25. echo "Direcci&#38;#243;n incorrecta";
  26. }
  27.  
  28. ?>
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines