1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Estructura código php Formulario

Tema en 'Programación y Diseño Web' iniciado por Polloslp, 28 Abr 2009.

  1. Polloslp

    Polloslp Nuevo usuario

    Bueno pues, un cordial saludo a todos y espero me puedan ayudar en mi pequeño problema...
    Acabo de empezar con ésto de las páginas web, códigos php flash y todo ese rollo.
    Me estuve leyendo el tutorial de elQuique que por cierto felicidades por el tutorial aprendí mucho,
    El cuál trataba de los formularios, pero bien, iré al grano con mi problema.

    Mi pregunta está la siguente...
    Todo anda perfectamente, me envía el correo y todo pero no envía ciertos datos...
    Sé que el código php está mal, pero me gustaría que me dieran una orientada acerca de por dónde empezar
    Disculpen la molestia que ésto pueda ocasionar, mi código php es el siguiente:

    <!--quoteo--><div class='quotetop'>CITA</div><div class='quotemain'><!--quotec-->
    <?php

    $name= $_POST['name'];
    $apellido = $_POST['apellido'];
    $tel = $_POST['tel'];
    $email = $_POST['email'];
    $empresa = $_POST['empresa'];
    $giro = $_POST['giro'];
    $sup = $_POST['sup'];
    $medios = $_POST['medios'];
    $comenta = $_POST['comenta'];

    $header = 'From: ' . $mail . " \r\n";
    $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
    $header .= "Mime-Version: 1.0 \r\n";
    $header .= "Content-Type: text/plain";

    $mensaje = "Este mensaje fue enviado por " . $name . " " . $apellido . " , De la Empresa " . $empresa . " \r\n";
    $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
    $mensaje .= "Enviado el " . date('d/m/Y', time());

    $para = 'clientes@chapultepec1200.com';
    $asunto = 'Forma Chapultepec1200';

    mail($para, $asunto, utf8_decode($mensaje), $header);

    echo 'Solicitud Enviada Correctamente, Gracias.';
    ?><!--QuoteEnd--></div><!--QuoteEEnd-->

    Y mi formulario es el siguiente :

    <!--quoteo--><div class='quotetop'>CITA</div><div class='quotemain'><!--quotec--><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>| Envíanos Tus Datos!! | Chapultepec1200 |</title>

    </head>

    <body onload="window.resizeTo( 495,675 )"><center><img src="logo.jpg" /></center>
    <form name="form1" method="post" action="enviar.php">
    <table width="100%" align="center" border="0">
    <tbody><tr>
    <td width="10%">&nbsp;</td>
    <td width="24%"><font size="2" face="arial">Nombre:</font> </td>
    <td width="66%"><div align="left">
    <input name="name" size="30" maxlength="70" type="text">
    </div></td>
    </tr>
    <tr>
    <td width="10%">&nbsp;</td>
    <td width="24%"><font size="2" face="arial">Apellido:</font> </td>
    <td><div align="left">
    <input name="apellido" size="30" maxlength="70" type="text">
    </div></td>
    </tr>
    <tr>
    <td width="10%">&nbsp;</td>
    <td width="24%"><font size="2" face="arial">Teléfono:</font> </td>
    <td><div align="left">
    <input name="tel" size="30" maxlength="70" type="text">
    </div></td>
    </tr>
    <tr>
    <td width="10%">&nbsp;</td>
    <td width="24%"><font size="2" face="arial">Email:</font> </td>
    <td><div align="left">
    <input name="email" size="30" maxlength="70" type="text">
    </div></td>
    </tr>
    <tr>
    <td width="10%">&nbsp;</td>
    <td width="24%"><font size="2" face="arial">Empresa:</font> </td>
    <td><div align="left">
    <input name="empresa" size="30" maxlength="70" type="text">
    </div></td>
    </tr>
    <tr>
    <td width="10%">&nbsp;</td>
    <td width="24%"><font size="2" face="arial">Giro:</font> </td>
    <td><div align="left">
    <input name="giro" size="30" maxlength="70" type="text">
    </div></td>
    </tr>
    <tr>
    <td width="10%">&nbsp;</td>
    <td width="24%"><font size="2" face="arial">Superficie:</font> </td>
    <td><div align="left">
    <input name="sup" size="30" maxlength="70" type="text">
    </div></td>
    </tr>
    <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top"><font size="2" face="arial">¿Porque medio supo de nosotros?:</font></td>
    <td><div align="left">
    <input name="medios" size="30" maxlength="70" type="text">
    </div></td>
    </tr>

    <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top"><font size="2" face="arial">Comentarios:</font></td>
    <td><div align="left"><font size="4" face="arial"></font><br>
    <textarea name="comenta" cols="25" rows="6"></textarea>
    </div></td>
    </tr>

    <tr valign="bottom">
    <td colspan="3" align="center" height="49"><p>
    <input name="form1" value="Enviar mis datos" type="submit">
    <input value="Limpiar forma" type="reset">
    </p></td>
    </tr>
    <tr>
    <td colspan="3" height="20"><div align="left">
    <p><font size="2" color="#999999" face="Arial, Helvetica, sans-serif"><strong>No olvide llenar todos los datos para que no haya ningún problema al contactarlo, gracias.</strong></font></p>
    <p>&nbsp;</p>
    </div></td>
    </tr>
    </tbody></table></form>
    </body>
    </html><!--QuoteEnd--></div><!--QuoteEEnd-->

    Espero me puedan ayudar y disculpen las molestias.

    Alejandro.-
     
  2.  
  3. elQuique

    elQuique Usuario activo

    Gracias por tus palabras sobre el tutorial.

    Para seguir no utilices tablas, las tablas no se usan para diseñar, utiliza CSS, ya que las tablas son para hacer reportes y tu quieres hacer un formulario, no un listado de datos.

    Lo otro que debes ver es que por cada elemento input de tu formulario HTML exista un elemento $_POST en el PHP que capture ese dato ingresado en el formulario.

    En otras palabras si tienes un:

    <input name="nombre">

    debes tener en el php un:

    $nom = $_POST['nombre'];

    y así por cada uno.

    Tu tienes en tu html estos elementos: name, apellido, tel, email, empresa, giro, sup, medios, comenta.

    Estas seguro que capturas todos ellos con su correspondiente POST ??

    :), pues si, los capturas todos pero .... no solo basta con capturarlos, luego debes armar un texto con ellos para que estos se envíen por email, y este texto lo estas armando más abajo de la siguiente forma:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    $mensaje = "Este mensaje fue enviado por " . $name . " " . $apellido . " , De la Empresa " . $empresa . " \r\n";
    $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
    $mensaje .= "Enviado el " . date('d/m/Y', time());<!--c2--></div><!--ec2-->

    utilizaste, nombre, apellido, empresa, mensaje .... y los demás ??

    En ningún momento agregaste al cuerpo del mensaje los demás elementos: tel, email, giro, sup, medios ...

    y a uno que le llamaste "comenta", en el mensaje lo llamas "mensaje" !!!

    pues ahí esta tu o tus problemas :)
     
  4. Polloslp

    Polloslp Nuevo usuario

    Gracias por la ayuda a la brevedad elQuique...
    Sí, encontré ciertos errores que corregí, je,je,je, que pena, errores de principiante, pero algunos los corregí...
    Más sin embargo el problema persiste, ya solucioné varias cosas:

    1.- Ya llegan los comentarios
    2.- Ya llega el E-mail
    3.- Llega la fecha en la quese envió...

    Se solucionaron esos problemas pero ahora no me llega el nombre, apellido, superficie, teléfono ni la empresa.
    Disculpa las molestias que ocasiono pero pues apenas estoy aprendiendo.
    Mi duda es, ¿porqué algunos de los $mensajes los tienes así: $mensaje . = por que estaba viendo, que son los
    Que llegan los que tienen el $mensaje . = son los que llegan a mi correo...
    Te dejo mi código php por sí existe algún error.

    De antemano muchas gracias por la ayuda y el tiempo que tomas para brindarla.

    Gracias.-
    Alejandro .-

    <!--quoteo--><div class='quotetop'>CITA</div><div class='quotemain'><!--quotec--><?php

    $name= $_POST['name'];
    $apellido = $_POST['apellido'];
    $tel = $_POST['tel'];
    $email = $_POST['email'];
    $empresa = $_POST['empresa'];
    $giro = $_POST['giro'];
    $sup = $_POST['sup'];
    $medios = $_POST['medios'];
    $comenta = $_POST['comenta'];

    $header = 'From: ' . $mail . " \r\n";
    $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
    $header .= "Mime-Version: 1.0 \r\n";
    $header .= "Content-Type: text/plain";

    $mensaje = "Este mensaje fue enviado por " . $name . " " . $apellido . " , de la empresa " . $empresa . " \r\n";
    $mensaje = "Teléfono " . $tel . " \r\n";
    $mensaje = "Giro " . $giro . " \r\n";
    $mensaje = "Superficie " . $sup . " \r\n";
    $mensaje = "Medio por el que nos contactó" . $medios . " \r\n";
    $mensaje .= "Su e-mail es: " . $email . " \r\n";
    $mensaje .= "comenta: " . $_POST['comenta'] . " \r\n";
    $mensaje .= "Enviado el " . date('d/m/Y', time());

    $para = 'alejandromtz@portalsomm.com';
    $asunto = 'Forma Chapultepec1200';

    mail($para, $asunto, utf8_decode($mensaje), $header);

    echo 'Solicitud Enviada Correctamente, Gracias.';
    ?><!--QuoteEnd--></div><!--QuoteEEnd-->
     
  5. elQuique

    elQuique Usuario activo

    pues si pones:

    $mensaje = "hola";

    ahí dentro se guarda un hola, si pones:

    $mensaje = "chaucito";

    pues ahí dentro se borra el hola y queda chaucito, ahí esta tu error, cuando quieres sumar texto debes usar .= que significa agregar, y no solo el = que significa guardar tal cosa (superponiendo a lo anterior)

    $mensaje = "hola";
    $mensaje.= "chaucito";

    el error lo cometes en $mensaje desde telefono hasta medio por el que nos contacto :)
     
  6. Polloslp

    Polloslp Nuevo usuario

    Muchas gracias por la ayuda :D
    Ya quedó, como por pequeños errores ó puntos no salen las cosas :rolleyes:
    Gracias por todo, ya me quedó bastante claro lo del formulario.

    P.D. El foro está muy completo. :)

    Hasta la próxima.
     
  7. Elias RC

    Elias RC Guest

    Buen dia, si alguien halla a elQuique cuentenle que estoy atascado, he leido los tutoriales que son de magnifica ayuda, desafortunadamente no logro el objetivo.

    Les adjunto los scripts para que les echen un ojo...mejor los 2.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Contactenos</title>
    </head>

    <body>
    <form id="contacto" name="contacto" method="post" action="send.php">
    <label>Nombre:
    <input name="nombre" type="text" id="nombre" size="50" />
    <br />
    <br />
    E-mail:
    <input name="mail" type="text" id="mail" size="50" />
    <br />
    <br />
    País:
    <input name="pais" type="text" id="pais" size="30" />
    <br />
    <br />
    Mensaje:<br />
    <textarea name="mensaje" cols="60" rows="5" id="mensaje"></textarea>
    <br />
    <br />
    <input type="submit" name="enviar" id="enviar" value="Enviar" />
    <br />
    </label>
    </form>
    </body>
    </html>

    (en este tengo la duda de porque no me aparece <label> para cada elemento de formulario y ademas me aparece <br> en vez de <p> como he visto en los scripts de otros foreros, ¿que sucede?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Enviar Contacto</title>
    </head>

    <body>< ?php
    $nombre = $_POST['nombre'];
    $mail = $_POST['mail'];
    $pais = $_POST['pais'];

    $header = 'From: ' . $mail . " \r\n";
    $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
    $header .= "Mime-Version: 1.0 \r\n";
    $header .= "Content-Type: text/plain";

    $mensaje = "Este mensaje fue enviado por " . $nombre . " \r\n";
    $mensaje .= "Su e-mail es: " . $mail . " \r\n";
    $mensaje .= "Es de: " . $pais . " \r\n";
    $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
    $mensaje .= "Enviado el " . date('d/m/Y', time());

    $para = 'micorreo@yahoo.com';
    $asunto = 'Contacto Misitio';

    mail($para, $asunto, utf8_decode($mensaje), $header);

    echo 'Mensaje Recibido, Muchisimas Gracias';

    ?>
    </body>
    </html>

    (es este no tengo mayor duda, aunque no estoy seguro de si esta todo bien)

    CONSIDERACIONES:

    -Ayer instale el paquete Appserv como lo indica el tutorial.
    -En uno de los pasos puse "localhost" y despues "micorreoreal@yahoo.com".
    -Al estar en Dw, activo el simulador de navegacion"F12", y sigo los vinculos para llegar a la hoja de contacto, lleno los espacios, le doy "Enviar" y los siguiente que me aparece en la ventana del navegador es el script del archivo send.php

    Gracias por la atención.
     
  8. elQuique

    elQuique Usuario activo

    Si no tienes un servidor de correo en tu Pc no vas a poder enviar correos por mas que instales PHP.

    Tampoco uses Dw y F12, utiliza el navegador y la url apropiada.
     
  9. Elias RC

    Elias RC Guest

    elQuique gracias por responder, pondre en practica la sugerencia.
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·