Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2011, 09:42
Avatar de oNefl0w189
oNefl0w189
 
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años
Puntos: 4
Formulario PHP y Validacion, no funciona.

Hola, tengo el siguiente código, lo que intento es validar un email si esta correcto que envie el email y si no que falle como es obvio, pero no funciona :S.

Código PHP:
Ver original
  1. <h2>Formulario de contacto:</h2>
  2.                     <?php
  3.                    
  4.                     function check_email_address($email)
  5. {
  6.     // Primero, checamos que solo haya un símbolo @, y que los largos sean correctos
  7.   if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
  8.     {
  9.         // correo inválido por número incorrecto de caracteres en una parte, o número incorrecto de símbolos @
  10.     return false;
  11.   }
  12.   // se divide en partes para hacerlo más sencillo
  13.   $email_array = explode("@", $email);
  14.   $local_array = explode(".", $email_array[0]);
  15.   for ($i = 0; $i < sizeof($local_array); $i++)
  16.     {
  17.     if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
  18.         {
  19.       return false;
  20.     }
  21.   }
  22.   // se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
  23.     if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
  24.     {
  25.      $domain_array = explode(".", $email_array[1]);
  26.      if (sizeof($domain_array) < 2)
  27.          {
  28.         return false; // No son suficientes partes o secciones para se un dominio
  29.      }
  30.      for ($i = 0; $i < sizeof($domain_array); $i++)
  31.          {
  32.         if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
  33.                 {
  34.            return false;
  35.         }
  36.      }
  37.   }
  38.   return true;
  39. }
  40.                    
  41.                    
  42.                    
  43.                    
  44.                     if (!isset($_POST['mail'])) {
  45.                    
  46.                     ?>
  47.                     <form id="ContactForm" action="<?=$_SERVER['PHP_SELF']?>" method="post">
  48.                         <div class="wrapper pad_bot1">
  49.                             <div class="wrapper">
  50.                                 <div class="bg"><input type="text" name="nombre" class="input" placeholder="Introduce tu nombre" required /></div>Nombre:<br />
  51.                             </div>
  52.                             <div class="wrapper">
  53.                                 <div class="bg"><input type="text" name="mail" class="input" placeholder="Introduce tu correo" required /></div>E-mail:<br />
  54.                             </div>
  55.                             <div class="wrapper">
  56.                                 <div class="bg"><div class="textarea"><textarea name="mensaje" cols="1" rows="1" placeholder="Introduce tu mensaje lo más detalladamente posible, ej; Me gustaría contratar sus servicios para la maquetacion de un logo." required ></textarea></div></div>Mensaje:<br />
  57.                             </div>
  58.                            
  59.                         </div>
  60.                     </form>
  61.                     <?php
  62.                     }else{
  63.                      $email = $_POST['mail'];
  64.                         if (check_email_address($email)){
  65.                       $nombre = $_POST['nombre'];
  66.                         $mail = $_POST['mail'];
  67.                         $mensaje = $_POST['mensaje'];
  68.  
  69.                         $header = 'De: ' . $mail . " \r\n";
  70.                         $header .= "Desde: PHP/" . phpversion() . " \r\n";
  71.                         $header .= "Version: 1.0 \r\n";
  72.                         $header .= "Contenido de tipo: texto/plano";
  73.  
  74.                         $mensaje = "Este mensaje fue enviado por " . $nombre .  " \r\n";
  75.                         $mensaje .= "Su e-mail es: " . $mail . " \r\n";
  76.                         $mensaje .= "Mensaje: " . $mensaje . " \r\n";
  77.                         $mensaje .= "Enviado el " . date('d/m/Y', time());
  78.  
  79.                         $para = '[email protected]';
  80.                         $asunto = 'Contacto de Prueba';
  81.  
  82.                         mail($para, $asunto, utf8_decode($mensaje), $header);
  83.  
  84.                         echo '&estatus=ok&';
  85.                     }else {
  86.                     echo "Email Invalido, Imposible enviar el correo";}
  87.                 }
  88. ?>