Ver Mensaje Individual
  #23 (permalink)  
Antiguo 08/09/2005, 03:27
Avatar de arcanis
arcanis
 
Fecha de Ingreso: diciembre-2004
Mensajes: 11
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias funciona bien como tu dijiste, aunque he tenido que limpiar mas codigo ahora funciona perfectamente o por lo menos a mi me funciona, lo pongo por si alguien quiere usarlo.

mail.php
Código PHP:
<?php

/*Función para validar e-mail con Exprexiones Regulares*/
function check_email($email) {
    
//caracteres permitidos en el nombre: 0-9a-Z-._ en el host: 0-9a-Z-. entre los 2: @
    
if (!preg_match('/^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/'$email))
        return 
False;

    
//Nombre debe empezar con algún caracter alfanumerico
    
if ( preg_match('/^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/'$email))
        return 
False;

    
//Nombre debe terminar con algún caracter alfanumerico
    
if (!preg_match('/([0-9a-zA-Z_]{1})\@./',$email) )                    
        return 
False;

    
//Host debe empezar con algún caracter alfanumerico
    
if (!preg_match('/.\@([0-9a-zA-Z_]{1})/',$email) )                    
        return 
False;

    
#Par .- or -. or -- or .. no permitidos
    
if ( preg_match('/.\.\-.|.\-\..|.\.\..|.\-\-./',$email) )
        return 
False;

    
#Par ._ or -_ or _. or _- or __ no permitidos
    
if ( preg_match('/.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./',$email) )
        return 
False;

    
#Host debe terminar con '.' más 2-5 alfa para TopLevelDomain
    
if (!preg_match('/\.([a-zA-Z]{2,5})$/',$email) )
        return 
False;

    return 
True;
}
/*Si se le dio al boton submit*/
if (isset($_POST['submit'])) {
//revisa si no estan vacios los campos
  
if (!empty($_POST['nombre']) &&   !empty($_POST['asunto']) && !empty($_POST['mensaje'])) {
//revisa si el e-mail es valido
    
if (check_email($_POST['email'])) {
//asigno variables para el envio      
$para "[email protected]";
$email $_POST['email'];
$nombre $_POST['nombre'];
$asunto $_POST['asunto'];
$mensaje="$nombre (".$_SERVER['REMOTE_ADDR'].")envia el siguiente mensaje \n".$_POST['mensaje'];
$headers "From: $nombre \r\n";
$headers.= "To:$para\r\n";
//envio el mail
      
if (mail($para,$asunto,$mensaje,$headers)) {
//si se pudo enviar
      
echo "<script language=\"javascript\" type=\"text/javascript\">alert ('Gracias por tus comentarios')</script>";}
      else{
//si no se pudo enviar
      
echo "<script language=\"javascript\" type=\"text/javascript\">alert('Error: El e-mail no pudo ser enviado')</script>";}
      }
      else{
//si el e-mail no es valido
     
echo "<script language=\"javascript\" type=\"text/javascript\">alert('El e-mail debe ser valido')</script>";}
     
     }else{
//si algun campo quedo vacio
  
echo "<script language=\"javascript\" type=\"text/javascript\">Alert('Debes rellenar todos los campos')</script>";}
  
}else{
?>
<form action="<?php $PHP_SELF ?>" method=post>
Nombre: <input type=text name="nombre" size=16>
<br />
Tu Email: <input type=text name="email" size=16>
<br />
Asunto: <input type=text name="asunto" size=16>
<br />
Comentarios:<br /> <textarea name="mensaje" cols=50 rows=8></textarea>
<br />
<input type=submit value="Enviar" name="submit">
</form>
Aqui va el form con el atributo name correspondiente en cada campo
<?php
}?>