Foros del Web » Programando para Internet » PHP »

Formulario PHP no envia todos los campos

Estas en el tema de Formulario PHP no envia todos los campos en el foro de PHP en Foros del Web. Hola! una vez mas por aqui, este foro me ha resultado bastante util. Quisiera consultar lo siguiente: tengo un formulario de contacto que se envia ...
  #1 (permalink)  
Antiguo 12/04/2011, 19:49
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Exclamación Formulario PHP no envia todos los campos

Hola! una vez mas por aqui, este foro me ha resultado bastante util. Quisiera consultar lo siguiente: tengo un formulario de contacto que se envia a un correo electronico, el problema es que no envia 2 campos en particular y no logro ver el problema. Los campos son email y direccion. Tambien tengo un codigo en js para validar los campos, no se si eso influya. Mis codigos:

Formulario html:

Código HTML:
<form action="send_contacto.php" method="post" name="frmContacto" onSubmit = "return validar(this)">
<div>
<label for="Nombre">Nombre *:</label>
<input type="text" id="inp1" name="txtNombre" maxlength="50"/> 
</div>
<div>
<label for="CI">C.I.*:</label>
<input type="text" id="inp2" name="txtCI" maxlength="15"/>
</div>
<div>
<label for="Direccion">Direccion*:</label>
<input type="text" id="inp3" name="txtDireccion" maxlength="100"/> 
</div>
<div>
<label for="Email">E-mail*:</label>
<input type="text" id="inp4" name="txtEmail" maxlength="30"/> 
</div>
<div>
<label for="Telefono">Telefono*:</label>
<input type="text" id="inp5" name="txtTelefono" maxlength="15"/>
</div>
<div>
<input class="button1" type="reset" value=""/> <p>
</div>
</div>
<div id="TextArea">
<label for="Mensaje">Mensaje*:</label>
<textarea id="Mensaje" name="txtMensaje"></textarea>
<input class="button2" type="submit" id="btnEnviar" value=""/>
</div> 

Codigo PHP
Código PHP:
Ver original
  1. [PHP]
  2. <?php
  3.  
  4. $para = '[email protected]';
  5. $asunto = 'Contacto desde pagina web;
  6. $cabeceras = 'From: contacto@paginaweb.com'. "\r\n" .
  7.        'X-Mailer: PHP/' . phpversion();
  8. $nombre = $_POST['txtNombre'];
  9. $ci = $_POST['txtCI'];
  10. $direccion = $_POST['txtDireccion'];
  11. $email = $_POST['txtEmail'];
  12. $telefono = $_POST['txtTelefono'];
  13. $mensaje = $_POST['txtMensaje'];
  14.  
  15.  
  16. $email = $_POST['inp3'];
  17. $direccion = $_POST['inp4'];
  18. $mensaje = $_POST['txtMensaje'];
  19. $cuerpo = "Este mensaje fue enviado por " . $nombre . ", Cedula de Identidadf: " . $ci . " \r\n";
  20. $cuerpo .= "Su domicilio es: " . $direccion . ", su correo es:" .$email. ", y su telefono es:" .$telefono. " \r\n";
  21. $cuerpo .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
  22. $cuerpo .= "Enviado el " . date('d/m/Y', time());
  23.  
  24.  
  25. ini_set(sendmail_from,'contacto@paginaweb.com');  
  26. mail($para, $asunto, utf8_decode($cuerpo), $cabeceras);
  27.  
  28. echo "$direccion"; //coloque un echo para ver la captura y los muestra vacios
  29. echo "$email";
  30.  
  31. echo "el mensaje al fin fue enviado";
  32. ?>[/PHP]


Espero puedan ayudarme... muchas gracias de antemano
  #2 (permalink)  
Antiguo 12/04/2011, 19:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario PHP no envia todos los campos



tan claro e invisible a la ves?
Cita:
$direccion = $_POST['txtDireccion'];
$email = $_POST['txtEmail'];

$email = $_POST['inp3'];
$direccion = $_POST['inp4'];
creo que deberías tomar una elección: ¿programación o cocina?

bueno, no importa cual, ambas requieren de bastante atención y observación...

los campos se leen a partir del name, pero no del id
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/04/2011, 08:47
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Formulario PHP no envia todos los campos

Gracias! me imagine que era algo simple y que no podia ver...
por cierto elijo ambas cosas...
  #4 (permalink)  
Antiguo 13/04/2011, 09:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 1
Respuesta: Formulario PHP no envia todos los campos

Hola marie....se supone ke en el foro podemos preguntar cualquier cosa por mas ke a otros les perezca una tontera....te felicito por encontrar la solución a tu problema .....y te pregunto algo por ke tambien kiero hacer algo con los mail....como lo hiciste tuviste ke crear un servidor de correo??? si podes tirame mas o menos como empiezo gracias y suerte
  #5 (permalink)  
Antiguo 13/04/2011, 09:20
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Formulario PHP no envia todos los campos

Hola! Pues como estoy haciendo pruebas en modo local, uso un servidor que soporta el envio de correos, para ellos baje xampp 1.7.3, tuve que hacer un monton de cambios de configuracion que segui a traves de una guia (https://www.underground.org.mx/index.php?topic=24039.0) y despues de mucho rato al fin logre que llegaran a mi correo los datos... Me parece que este xampp es un poco complicado pero funciona, puedes probarlo y cualquier cosa yo podria ayudarte un poco o podrias investigar acerca de otro mas sencillo... funciona perfecto con Windows 7.
Tambien podria darte el codigo completo del formulario si lo necesitas...
Estoy a la orden en lo que pueda ayudarte (estoy emezando en esto de programacion web).. ;)
  #6 (permalink)  
Antiguo 14/04/2011, 08:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 1
Respuesta: Formulario PHP no envia todos los campos

ok muchas gracias por tu ayuda investigare un poco y si no encuentro nada te aviso garcias saludos
  #7 (permalink)  
Antiguo 26/07/2011, 19:14
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Formulario PHP no envia todos los campos

Hola marie_florido:
Buscando encontre este tema y quisiera saber como resolviste porque tengo un problema similar. Tengo un formulario PHP de contacto que solo envia tres campos (Nombre, Email y Fecha). Todos los demas llegan en blanco. Al principio pense que el error era que no mandaba llamar los datos ($_post), pero al hacerl con cada uno de los campos me manda error de página y no funciona. Ya lo compare con un formulario mas pequeño con lamisma estructura y no encuentro la falla. Es mas, al formulario pequeño solo le agregue los campos y tampoco funciona. Dejo aqui los codigos por si alguien se apiada de mi cabeza..gracias de antemano.

**Este es el archivo FORMA.PHP. Que no envia los campos.**
Código PHP:
Ver original
  1. <?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
  2.   <!-- COMIENZA EL FORMULARIO -->
  3. </p>
  4. </hl>
  5.  
  6. <form method="post" name="formulario1" action="envio.php"
  7. onsubmit="return Valida(this)">
  8.  
  9. <!-- CAMBIE ESTE VALOR Y PONGA LA DIRECCION A LA QUE QUIERE QUE LE LLEGUEN LOS EMAILS -->
  10. <input type="hidden" name="direccionenvio"
  11. value="[email protected]" id="Hidden1" />
  12.  
  13. <!--CAMBIE ESTE VALOR Y EL URL DE LA PÁGINA DE CONFIRMACION-->
  14. <input type="hidden" name="paginaconfirmacion"
  15. value="confirmacion.php" id="Hidden2" />
  16.  
  17. <!-- COLOQUE AQUI LOS CAMPOS E INFORMACION QUE NECESITE -->
  18.  
  19. <p align="left"><span class="Estilo1">________________________________</span>Nombre*
  20.   <input name="nombre" type="text" id="nombre" size="40" />
  21. </p>
  22. <p align="left"><span class="Estilo1">______________________________</span>Apellido*
  23.     <input name="apellido" type="text" size="40" />
  24. </p>
  25. <p align="left"><span class="Estilo1">______________________</span>N&amp;mero de cliente
  26.   <input name="numcliente" type="text" id="numcliente" size="40" />
  27. </p>
  28. <p align="left"><span class="Estilo1">____________________</span>Correo Electr&oacute;nico*
  29.   <input type="text" name="email" size="40" /></p>
  30. <p align="left"><span class="Estilo1">______________________</span>Tel. de Contacto*
  31.   <input type="text" size="40" />
  32. </p>
  33. <p align="left"><span class="Estilo1">_______________________</span>Tel. Monitoreado
  34.   <input type="text" size="40" />
  35. </p>
  36. <p align="left"><span class="Estilo1">_________________________</span>C&quot;digo Postal*
  37.     <input type="text" size="40" />
  38. </p>
  39. <p align="left"><span class="Estilo1">_____________________________</span>Direcci&quot;n*
  40.   <input type="text" size="40" />
  41. </p>
  42. <p align="left"><span class="Estilo1">_______________________________</span>Colonia*
  43.   <input type="text" size="40" />
  44. </p>
  45. <p align="left"><span class="Estilo1">________________________________</span>Ciudad*
  46.   <input type="text" size="40" />
  47. </p>
  48.  
  49. <p align="left"><span class="Estilo1">________________________________</span>Estado*
  50.     <select name="select" size="1" id="select">
  51.       <option selected="selected">AGUASCALIENTES </option>
  52.       <option>BAJA CALIFORNIA NORTE</option>
  53.       <option>BAJA CALIFORNIA SUR</option>
  54.     </select>
  55. </p>
  56. <p align="left" class="Estilo2">CLASIFICACION DE CONTACTO
  57. </p>
  58. <p align="left" class="Estilo1">_______________________________</span>Producto
  59.   <select name="select2">
  60.     <option>TODOS</option>
  61.     <option>MONITOREO DE ALARMAS</option>
  62.     <option>CCTV</option>
  63.   </select>
  64. </p>
  65. <p align="left" class="Estilo1">_____________________</span>Motivo de Contacto
  66.   <select name="select3">
  67.     <option>AGRADECIMIENTOS</option>
  68.     <option>QUEJA/RECLAMO</option>
  69.   </select>
  70. </p>
  71. <p align="left" class="Estilo2">DETALLE DE SU CONULTA </p>
  72. <p align="left" class="Estilo1">_________________________</span>Detalle
  73.   <textarea name="textfield" cols="50" rows="5"></textarea>
  74. </p>
  75. <p><input type="submit" value="Enviar" name="B1"
  76. id="Submit1" />
  77. <input type="reset" value="Restablecer" name="B2"
  78. id="Reset1" /></p>
  79.  
  80. </form>
  81.  
  82. </body>
  83.  
  84. </html>

**Este es el archivo ENVIO.PHP que solo envia los campos Nombre, Email y Fecha**
Código PHP:
Ver original
  1. <?php
  2.  
  3. //************************* ENVIO DE EMAIL **********************************************************
  4. include("mandaemail.inc");
  5.  
  6. if ( isset($_POST['direccionenvio']) && isset($_POST['paginaconfirmacion']) ) {
  7.     $mailTo = $_POST['direccionenvio'];
  8.     $mailFrom = $_POST['email'];
  9.     $mailSubject = "Forma de correo";
  10.     $now = date('d-m-Y');
  11.     $name = $_POST['nombre'];
  12.  
  13.     /** MODIFIQUE AQUI EL CODIGO, INCLUYA UNA LINEA COMO LA DE  Nombre: $nombre Y
  14.     '** DESPUES \n
  15.     '** PARA CADA CAMPO QUE HAYA AGREGADO SIN BORRAR <<<EOT y EOT; E INDIQUE EL
  16.     FORMATO DEL CORREO */
  17.    
  18. $mailFormat = 1; // 0 para correo HTML o 1 para correo de texto
  19. $mailBody = <<<EOT
  20. Fecha: $now\n
  21. Nombre: $name\n
  22. Apellido: $apellido\n
  23. Número de Cliente: $numcliente\n
  24. Email: $mailFrom\n
  25. Tel. de Contacto: $telcontacto\n
  26. Tel. Monitoreado: $telmonitoreado\n
  27. Codigo Postal: $cp\n
  28. Direccion: $direccion\n
  29. Colonia: $colonia\n
  30. Ciudad: $ciudad\n
  31. Estado: $select\n
  32. Producto: $select2\n
  33. Motivo: $select3\n
  34. Descripcion: $textfield\n
  35. Fin del email
  36. EOT;
  37.     MandaEmail($mailTo,$mailFrom,$mailSubject,$mailBody,$mailFormat);                  
  38.    
  39.     //***MANDA A LA PÁGINA DE CONFIRMACION Y LE PASA LO QUE TRAEN LOS CAMPOS nombre y email
  40.    
  41.     Header("Location:". $_POST['paginaconfirmacion'] . "?nombre=" . $_POST['nombre'] . "&email=" . $_POST['email']);
  42.    
  43.     //*** FIN MANDA A LA PÁGINA DE CONFIRMACION Y LE PASA LO QUE TRAEN LOS CAMPOS nombre y email
  44. } else {
  45.  
  46. $head = '<?xml version="1.0" encoding="UTF-8"?>';
  47. $head .= <<<EOT
  48. <!DOCTYPE html
  49.      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  50.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  51. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  52. <head>
  53. <title>CONTACTENOS</title>
  54. <style type="text/css">
  55. <!--
  56. body {
  57.   font-family:"Lucida Grande","Lucida Console",sans-serif;
  58. }
  59. #content {
  60.   font-size:0.8em;
  61.     position:absolute;
  62.     width:750px;
  63.     left:50%;
  64.     margin-left:-392px;
  65.     margin-top:3em;
  66.     padding:15px;
  67.     border:2px solid gray;
  68. }
  69. #content h4 {
  70.   font-family:"georgia",serif;
  71.     font-size:1.5em;
  72.     color:brown;
  73.     font-variant:small-caps;
  74.     margin-top:0;
  75. }
  76. -->
  77. </style>
  78. </head>
  79.  
  80. <body>
  81.  
  82. <div id="content">
  83. <h4>Se han generado los siguientes errores</h4>
  84. EOT;
  85.  
  86.     echo $head;
  87.  
  88.     if(!isset($_POST['direccionenvio'])) {
  89.         echo '<p>No se puede enviar el formulario porque el campo "direccionenvio" est&aacute; vac&iacute;o</p>';
  90.     }
  91.    
  92.     if(!isset($_POST['paginaconfirmacion'])) {
  93.         echo '<p>No se puede enviar el formulario porque el campo "paginaconfirmacion" est&aacute; vac&iacute;o</p>';
  94.     }
  95.    
  96.     $bott =<<<EOT
  97. </div>
  98. </body>
  99. </html>
  100. EOT;
  101.  
  102.     echo $bott;
  103. }
  104. //**********************FIN ENVIO DE EMAIL **********************************************************
  105. ?>

Perdon por poner todo el codigo, pero como dije. No encuentro la falla por mas que revise y compare, con este otro que SI funciona y que envia toooodos los campos.

Código PHP:
Ver original
  1. <?php
  2.  
  3. //************************* ENVIO DE EMAIL **********************************************************
  4. include("mandaemail.inc");
  5.  
  6. if ( isset($_POST['direccionenvio']) && isset($_POST['paginaconfirmacion']) ) {
  7.     $mailTo = $_POST['direccionenvio'];
  8.     $mailFrom = $_POST['email'];
  9.     $mailSubject = "Forma de correo";
  10.     $now = date('d-m-Y');
  11.     $name = $_POST['nombre'];
  12.  
  13.     /** MODIFIQUE AQUI EL CODIGO, INCLUYA UNA LINEA COMO LA DE  Nombre: $nombre Y
  14.     '** DESPUES \n
  15.     '** PARA CADA CAMPO QUE HAYA AGREGADO SIN BORRAR <<<EOT y EOT; E INDIQUE EL
  16.     FORMATO DEL CORREO */
  17.    
  18. $mailFormat = 1; // 0 para correo HTML o 1 para correo de texto
  19. $mailBody = <<<EOT
  20. Fecha: $now\n
  21. Nombre: $name\n
  22. Email: $mailFrom\n
  23. Telefono: $textfield\n
  24. coment: $coment\n
  25. Fin del email
  26. EOT;
  27.     MandaEmail($mailTo,$mailFrom,$mailSubject,$mailBody,$mailFormat);                  
  28.    
  29.     //***MANDA A LA PÁGINA DE CONFIRMACION Y LE PASA LO QUE TRAEN LOS CAMPOS nombre y email
  30.    
  31.     Header("Location:". $_POST['paginaconfirmacion'] . "?nombre=" . $_POST['nombre'] . "&email=" . $_POST['email']);
  32.    
  33.     //*** FIN MANDA A LA PÁGINA DE CONFIRMACION Y LE PASA LO QUE TRAEN LOS CAMPOS nombre y email
  34. } else {
  35.  
  36. $head = '<?xml version="1.0" encoding="UTF-8"?>';
  37. $head .= <<<EOT
  38. <!DOCTYPE html
  39.      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  40.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  41. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  42. <head>
  43. <title>CONTACTENOS</title>
  44. <style type="text/css">
  45. <!--
  46. body {
  47.   font-family:"Lucida Grande","Lucida Console",sans-serif;
  48. }
  49. #content {
  50.   font-size:0.8em;
  51.     position:absolute;
  52.     width:750px;
  53.     left:50%;
  54.     margin-left:-392px;
  55.     margin-top:3em;
  56.     padding:15px;
  57.     border:2px solid gray;
  58. }
  59. #content h4 {
  60.   font-family:"georgia",serif;
  61.     font-size:1.5em;
  62.     color:brown;
  63.     font-variant:small-caps;
  64.     margin-top:0;
  65. }
  66. -->
  67. </style>
  68. </head>
  69.  
  70. <body>
  71.  
  72. <div id="content">
  73. <h4>Se han generado los siguientes errores</h4>
  74. EOT;
  75.  
  76.     echo $head;
  77.  
  78.     if(!isset($_POST['direccionenvio'])) {
  79.         echo '<p>No se puede enviar el formulario porque el campo "direccionenvio" est&aacute; vac&iacute;o</p>';
  80.     }
  81.    
  82.     if(!isset($_POST['paginaconfirmacion'])) {
  83.         echo '<p>No se puede enviar el formulario porque el campo "paginaconfirmacion" est&aacute; vac&iacute;o</p>';
  84.     }
  85.    
  86.     $bott =<<<EOT
  87. </div>
  88. </body>
  89. </html>
  90. EOT;
  91.  
  92.     echo $bott;
  93. }
  94. //**********************FIN ENVIO DE EMAIL **********************************************************
  95. ?>

Etiquetas: campos, envia, formulario
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 15:03.