Foros del Web » Programando para Internet » PHP »

Error

Estas en el tema de Error en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 22/05/2012, 11:35
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 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 :)
  #2 (permalink)  
Antiguo 22/05/2012, 12:14
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Error

Hola,

No entiendo muy bien cual es el problema cuando dices:
Cita:
pero el problema esq no me comprueba bien el teléfono (solo si existe)
Si es que sale error es normal
Código PHP:
if(isset($_POST["telefono"])           //si está definida
   
&& !empty($_POST["telefono"])       //si no esta vacía
   
&& strlen($_POST["telefono"]) == 9  //si la longitud de una cadena es 9
   
&& is_numeric($_POST["telefono"])   //si es un número o una cadena numérica
   
)
{
    
//si existe y se cumple todo lo anterior da error...
    
$errores[5] = "Telefono no valido!";

Y entiendo que si estas comprobando que es correcto debería ser
Código PHP:
if(!isset($_POST["telefono"])        //si NO está definida
   
&& empty($_POST["telefono"])      //si está vacía
   
&& strlen($_POST["telefono"]) != 9//si la longitud de una cadena NO es 9
   
&& !is_numeric($_POST["telefono"])//si NO es un número o una cadena numérica
   
)
{
    
//si no cumple lo anterior...
    
$errores[5] = "Telefono no valido!";

Es lo primero que me ha llamado la atención, podría ser eso?

Ya nos cuentas, un saludo.
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #3 (permalink)  
Antiguo 22/05/2012, 12:44
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
De acuerdo Respuesta: Error

Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
Hola,

No entiendo muy bien cual es el problema cuando dices:

Si es que sale error es normal
Código PHP:
if(isset($_POST["telefono"])           //si está definida
   
&& !empty($_POST["telefono"])       //si no esta vacía
   
&& strlen($_POST["telefono"]) == 9  //si la longitud de una cadena es 9
   
&& is_numeric($_POST["telefono"])   //si es un número o una cadena numérica
   
)
{
    
//si existe y se cumple todo lo anterior da error...
    
$errores[5] = "Telefono no valido!";

Y entiendo que si estas comprobando que es correcto debería ser
Código PHP:
if(!isset($_POST["telefono"])        //si NO está definida
   
&& empty($_POST["telefono"])      //si está vacía
   
&& strlen($_POST["telefono"]) != 9//si la longitud de una cadena NO es 9
   
&& !is_numeric($_POST["telefono"])//si NO es un número o una cadena numérica
   
)
{
    
//si no cumple lo anterior...
    
$errores[5] = "Telefono no valido!";

Es lo primero que me ha llamado la atención, podría ser eso?

Ya nos cuentas, un saludo.
Gracias por responder me pero no no es eso!
La cosa es que cuando la comprobación del teléfono este sola en un documento y con el formulario me lo comprueba bien pero si el código de comprobación esta en el código grande donde me comprueba todo no me funciona.
Pasa así que si no pongo teléfono me lo hace bien (comprobando bien los demás campos) pero si pongo teléfono en el formulario me comprueba el teléfono mal:
es decir que si pongo cualquier cosa también letras y da igual que sea 9 o 5 caracteres ... y no se porque!!
Por favor ayúdame :)
  #4 (permalink)  
Antiguo 22/05/2012, 13:30
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Error

A ver, en primer lugar, para testear tu código de forma sencilla deberías cambiar las variables $_POST['xxx'] por $nombreVariable según corresponda al inicio.

Así podrás cambiar las variables POST por otras para testear el code.
Por ejemplo:
Código PHP:
$oculto /*$_POST['oculto']*/ 'oculto';
$nombre /*$_POST['nombre']*/ 'nombre';
$email /*$_POST['email']*/ '[email protected]';
$mensaje /*$_POST['mensaje']*/ 'mensaje de texto';
$telefono /*$_POST["telefono"]*/ '956656565';

if(
$oculto) {
    if(isset(
$nombre) && !empty($nombre) && 
        isset(
$email) && !empty($email) &&
        isset(
$mensaje) && !empty($mensaje)) {
        
$errores = array();
//...
//... 
Y después, cambiar la línea como comentaba antes pero en vez de poner los signos "&&" los cambias por "||"

Código PHP:
//aquí es donde indicaba el fallo en el anterior mensaje,
//era lo que decía, pero hay que cambiar los && por ||
if(!isset($telefono) || empty($telefono) || strlen($telefono) != || !is_numeric($telefono)) {
    
$errores[5] = "Telefono no valido!";
    } 
PD.: Siempre hay que testear el código, o como mínimo escribir pensando en testear de forma sencilla. Esto acelera el desarrollo y minimiza los errores facilitando la localización de los mismos.

Prueba y me cuentas.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #5 (permalink)  
Antiguo 23/05/2012, 10:20
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Error

Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
A ver, en primer lugar, para testear tu código de forma sencilla deberías cambiar las variables $_POST['xxx'] por $nombreVariable según corresponda al inicio.

Así podrás cambiar las variables POST por otras para testear el code.
Por ejemplo:
Código PHP:
$oculto /*$_POST['oculto']*/ 'oculto';
$nombre /*$_POST['nombre']*/ 'nombre';
$email /*$_POST['email']*/ '[email protected]';
$mensaje /*$_POST['mensaje']*/ 'mensaje de texto';
$telefono /*$_POST["telefono"]*/ '956656565';

if(
$oculto) {
    if(isset(
$nombre) && !empty($nombre) && 
        isset(
$email) && !empty($email) &&
        isset(
$mensaje) && !empty($mensaje)) {
        
$errores = array();
//...
//... 
Y después, cambiar la línea como comentaba antes pero en vez de poner los signos "&&" los cambias por "||"

Código PHP:
//aquí es donde indicaba el fallo en el anterior mensaje,
//era lo que decía, pero hay que cambiar los && por ||
if(!isset($telefono) || empty($telefono) || strlen($telefono) != || !is_numeric($telefono)) {
    
$errores[5] = "Telefono no valido!";
    } 
PD.: Siempre hay que testear el código, o como mínimo escribir pensando en testear de forma sencilla. Esto acelera el desarrollo y minimiza los errores facilitando la localización de los mismos.

Prueba y me cuentas.

Saludos,
Gracias por conestarme pero el problema no se ha solucionado.
Cambie los $_post[""] por variables y luego las && por || pero ahora lo que pasa es que si pongo teléfono siempre me suelta el error :
"Por favor corrige los siguientes errores:(El telefono no es obligatorio)

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

Por favor ayudame
  #6 (permalink)  
Antiguo 24/05/2012, 03:07
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Error

Por favor alaguen ??
  #7 (permalink)  
Antiguo 25/05/2012, 08:54
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Error

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

Etiquetas: campos, email, formulario, mensaje, nombre, teléfono
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:57.