Tema: Error
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/05/2012, 11:35
Avatar de patilanz
patilanz
 
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 4 meses
Puntos: 29
Pregunta Error

Hola cree un código para que compruebe varios campos: nombre, email, mensaje y teléfono (el teléfono no es obligatorio) pero el problema esq no me comprueba bien el teléfono (solo si existe) ...
Me lo comprueba bien solo si tengo la parte te comprobación en otro documento pero mal si esta con el otro código que comprueba los demás campos
El codigo total es este :
Código PHP:
Ver original
  1. <?php
  2. if($_POST["oculto"]) {
  3.     if(isset($_POST["nombre"]) && !empty($_POST["nombre"]) &&
  4.         isset($_POST["email"]) && !empty($_POST["email"]) &&
  5.         isset($_POST["mensaje"]) && !empty($_POST["mensaje"])) {
  6.         $errores = array();
  7.         if(isset($_POST["telefono"]) && !empty($_POST["telefono"])) {
  8.             if(strlen($_POST["nombre"]) < 2) {
  9.                 $errores[0] = "El nombre es demasiado corto!";
  10.             }
  11.             if(strlen($_POST["nombre"]) > 30) {
  12.                 $errores[1] = "El nombre es demasiado largo!"; 
  13.             }
  14.             if(!preg_match("/^[^\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/", $_POST["email"])) {
  15.                 $errores[2] = "Email no valido";
  16.             }
  17.             if(strlen($_POST["mensaje"]) < 10) {
  18.                 $errores[3] = "Mensaje demasiado corto!";  
  19.             }
  20.             if(strlen($_POST["mensaje"]) > 500) {
  21.                 $errores[4] = "Mensaje demasiado largo!";      
  22.             }
  23.             if(isset($_POST["telefono"]) && !empty($_POST["telefono"]) && strlen($_POST["telefono"]) == 9 && is_numeric($_POST["telefono"])) {
  24.                 $errores[5] = "Telefono no valido!";
  25.                 }
  26.             if(!$errores) {
  27.                 print "Gracias " . $_POST["nombre"] . " con email:  " . $_POST["email"] . " y con telefono: " . $_POST["telefono"] . " creo el mensaje: <br />" . $_POST["mensaje"];   
  28.             } else {
  29.                 print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  30. <html xmlns="http://www.w3.org/1999/xhtml">
  31. <head>
  32. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  33. <title>Documento sin título</title>
  34. </head>
  35.  
  36. <body>
  37. <form id="form1" name="form1" method="post" action="Prueba_validar.php">
  38.  <p>
  39.    <label for="nombre"></label>
  40.     Nombre*:
  41.     <input type="text" name="nombre" id="nombre" />
  42.  </p>
  43.  <p>
  44.    <label for="email"></label>
  45.    Email*:
  46.    <input type="text" name="email" id="email" />
  47.  </p>
  48.  <p>
  49.    <label for="mensaje"></label>
  50.    Mensaje*:
  51.    <input type="text" name="mensaje" id="mensaje" />
  52.  </p>
  53.  <p>
  54.    <label for="telefono"></label>
  55.    Telefono:
  56.    <input type="text" name="telefono" id="telefono" />
  57.    <input name="oculto" type="hidden" id="oculto" value="1" />
  58.  </p>
  59.  <p>
  60.    <input type="submit" name="button" id="button" value="Enviar" />
  61.  </p>
  62.  <p><h3>Porfavor corrige los siguientes errores:(El telefono no es obligatorio)</h3></p>
  63.  <ul><li>
  64. ';  
  65. print implode("</li><li>", $errores);  
  66. print '
  67.  </li></ul>
  68. </form>
  69. </body>
  70. </html>
  71. ';     
  72.             }
  73.            
  74.        
  75.         } else {
  76.             if(strlen($_POST["nombre"]) < 2) {
  77.                 $errores[0] = "El nombre es demasiado corto!";
  78.             }
  79.             if(!preg_match("/^[^\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/", $_POST["email"])) {
  80.                 $errores[1] = "Email no valido";
  81.             }
  82.             if(strlen($_POST["nombre"]) > 30) {
  83.                 $errores[2] = "Nombre demasiado largo!";   
  84.             }
  85.             if(strlen($_POST["mensaje"]) < 10) {
  86.                 $errores[3] = "Mensaje demasiado corto!";
  87.             }
  88.             if(strlen($_POST["mensaje"]) > 500) {
  89.                 $errores[4] = "Mensaje demasiado largo!";
  90.             }
  91.             if(!$errores) {
  92.                 print "Gracias, " . $_POST["nombre"] . " con email: " . $_POST["email"] .  " creo el mensaje: <br /> " . $_POST["mensaje"];
  93.             } else {
  94.                     print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  95. <html xmlns="http://www.w3.org/1999/xhtml">
  96. <head>
  97. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  98. <title>Documento sin título</title>
  99. </head>
  100.  
  101. <body>
  102. <form id="form1" name="form1" method="post" action="Prueba_validar.php">
  103.  <p>
  104.    <label for="nombre"></label>
  105.     Nombre*:
  106.     <input type="text" name="nombre" id="nombre" />
  107.  </p>
  108.  <p>
  109.    <label for="email"></label>
  110.    Email*:
  111.    <input type="text" name="email" id="email" />
  112.  </p>
  113.  <p>
  114.    <label for="mensaje"></label>
  115.    Mensaje*:
  116.    <input type="text" name="mensaje" id="mensaje" />
  117.  </p>
  118.  <p>
  119.    <label for="telefono"></label>
  120.    Telefono:
  121.    <input type="text" name="telefono" id="telefono" />
  122.    <input name="oculto" type="hidden" id="oculto" value="1" />
  123.  </p>
  124.  <p>
  125.    <input type="submit" name="button" id="button" value="Enviar" />
  126.  </p>
  127.  <p><h3>Porfavor corrige los siguientes errores:(El telefono no es obligatorio)</h3></p>
  128.  <ul><li>
  129. ';  
  130. print implode("</li><li>", $errores);  
  131. print '
  132.  </li></ul>
  133. </form>
  134. </body>
  135. </html>
  136. '; 
  137.             }
  138.         }
  139.     } else {
  140.         print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  141. <html xmlns="http://www.w3.org/1999/xhtml">
  142. <head>
  143. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  144. <title>Documento sin título</title>
  145. </head>
  146.  
  147. <body>
  148. <form id="form1" name="form1" method="post" action="Prueba_validar.php">
  149.  <p>
  150.    <label for="nombre"></label>
  151.     Nombre*:
  152.     <input type="text" name="nombre" id="nombre" />
  153.  </p>
  154.  <p>
  155.    <label for="email"></label>
  156.    Email*:
  157.    <input type="text" name="email" id="email" />
  158.  </p>
  159.  <p>
  160.    <label for="mensaje"></label>
  161.    Mensaje*:
  162.    <input type="text" name="mensaje" id="mensaje" />
  163.  </p>
  164.  <p>
  165.    <label for="telefono"></label>
  166.    Telefono:
  167.    <input type="text" name="telefono" id="telefono" />
  168.    <input name="oculto" type="hidden" id="oculto" value="1" />
  169.  </p>
  170.  <p>
  171.    <input type="submit" name="button" id="button" value="Enviar" />
  172.  </p>
  173.  <p><h3>Porfavor rellena los campos necesarios.(El telefono no es obligatorio)</h3></p>
  174. </form>
  175. </body>
  176. </html>
  177. '; 
  178.     }
  179. }else {
  180.     print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  181. <html xmlns="http://www.w3.org/1999/xhtml">
  182. <head>
  183. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  184. <title>Documento sin título</title>
  185. </head>
  186.  
  187. <body>
  188. <form id="form1" name="form1" method="post" action="Prueba_validar.php">
  189.  <p>
  190.    <label for="nombre"></label>
  191.     Nombre*:
  192.     <input type="text" name="nombre" id="nombre" />
  193.  </p>
  194.  <p>
  195.    <label for="email"></label>
  196.    Email*:
  197.    <input type="text" name="email" id="email" />
  198.  </p>
  199.  <p>
  200.    <label for="mensaje"></label>
  201.    Mensaje*:
  202.    <input type="text" name="mensaje" id="mensaje" />
  203.  </p>
  204.  <p>
  205.    <label for="telefono"></label>
  206.    Telefono:
  207.    <input type="text" name="telefono" id="telefono" />
  208.    <input name="oculto" type="hidden" id="oculto" value="1" />
  209.  </p>
  210.  <p>
  211.    <input type="submit" name="button" id="button" value="Enviar" />
  212.  </p>
  213. </form>
  214. </body>
  215. </html>
  216. ';
  217. }
  218.  
  219.  
  220.  
  221.  
  222. ?>


Y el codigo que comprueba el telefono es este:
Código PHP:
Ver original
  1. if(isset($_POST["telefono"]) && !empty($_POST["telefono"]) && strlen($_POST["telefono"]) == 9 && is_numeric($_POST["telefono"])) {
  2.     $errores[5] = "Telefono no valido!";
  3. }

Porfavor ayuden me a solucionar el problema :)