Foros del Web » Programando para Internet » PHP »

Formulario-Envioen HTML-Recolectar Datos

Estas en el tema de Formulario-Envioen HTML-Recolectar Datos en el foro de PHP en Foros del Web. Hola Amigos programadores, Tengo una duda que me han contestado a medias. Trabajo para una pequeña empresa de diseño, yo soy diseñador y ahorita no ...
  #1 (permalink)  
Antiguo 31/10/2008, 08:55
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Exclamación Formulario-Envioen HTML-Recolectar Datos

Hola Amigos programadores, Tengo una duda que me han contestado a medias. Trabajo para una pequeña empresa de diseño, yo soy diseñador y ahorita no tenemos un programador PHP ni nada parecido, y un cliente quiere un formulario en su página web que envié a su correo el resultado en formato html y con los datos que lleno la persona en el formulario. Ya antes me la he jugado con correos en php o formularios pequeños, he buscado en las FAQ de php y encontre varias respuestas que me podrian servir pero tengo muchas preguntas que no encuentro.

Ok vamos al grano, para enviar el formulario en HTML me encontre este código:

Código:
<?php
$sfrom=""; //cuenta que envia
$sdestinatario=""; //cuenta destino
$ssubject=""; //subject
$shtml=""; //mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);
?>
las preguntas que tengo:
  1. En que parte lo pongo?
  2. Recoge los datos llenados en la form?
  3. si salvo la página en php aun puedo enviarla?

Otra opción que tengo seria que php recoga tanto las preguntas( del form) y lo que escriben de respuestas y lo envie todo, de una forma ordenada, pero aunque mas o menos se como se recuperan los datos, no se como se hace para ponerlos junto a la pregunta del form, o sea algo así:

Código:
Address Change Membership #: ________________

Name ______________Title_______________
obviamente los espacios ________________________, son el texfield del html, asi que necesitaria enviar por ejm, el "NAME" con su correspondiente Texfield lleno y ojala en otro color de texto o algo así.

Bueno espero haber sido claro en la pregunta, voy a adjuntar una seccion del código de mi form por si les ayuda en algo.

Gracias Maestros de la Programación
  #2 (permalink)  
Antiguo 31/10/2008, 08:57
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: [B]Formulario-Envioen HTML-Recolectar Datos[/B]

Código PHP:
<form name="form1" method="post" action="">
            <
p>
              <
label>
                <
input type="radio" name="RadioGroup1" value="radio" id="RadioGroup1_0">
                New</
label>
              <
br>
              <
label>
                <
input type="radio" name="RadioGroup1" value="radio" id="RadioGroup1_1">
                
Renew</label>
              <
br>
              <
label>
                <
input type="radio" name="RadioGroup1" value="radio" id="RadioGroup1_2">
                
Permanent</label>
            </
p>
            <
p>Address Change Membership #:
              
<input name="text1" type="text" id="text1" size="5" maxlength="5">    
               <
input name="text2" type="text" id="text2" size="5" maxlength="5"
               <
input name="text3" type="text" id="text3" size="5" maxlength="5"
               <
input name="text4" type="text" id="text4" size="5" maxlength="5"
               <
input name="text5" type="text" id="text5" size="5" maxlength="5">
            </
p>
            <
p>
              <
label>Name
              
<input name="name" type="text" id="name" size="30" maxlength="40">
              </
label>
               &
nbsp;&nbsp;
               <
label>Title
               
<input name="title" type="text" id="title" size="5" maxlength="5">
               </
label>
            </
p>
            <
p>
              <
label>Mailing Address
              
<input name="mailing_address" type="text" id="Mailing Address" size="25" maxlength="40">
              </
label>
              <
br>
                </
p>
            <
label>City
            
<input name="city" type="text" id="city" size="30" maxlength="40">
            </
label>
            <
label>State
            
<select name="state" id="state">
              <
option value="Alabama">Alabama</option>
              <
option value="Alaska">Alaska</option>
              
            </
select>
            </
label>
            <
p>
              <
label>Postal Code
              
<input name="postal_code" type="text" id="postal_code" size="7" maxlength="10">
              </
label>
              <
label>Country
              
<select name="country" id="country">
                <
option value="" >Please select...</option>
                <
option value="1" >Afghanistan</option>
                <
option value="2" >Albania</option>
                <
option value="3" >Algeria</option>
                
                                                                      </
select>

              </
select>
              </
label>
            </
p>
            <
p>
              <
label>E-Mail
              
<input name="email" type="text" id="email" size="25" maxlength="35">
              </
label>
               <
label>Office Phone
               
<input name="office_phone" type="text" id="office_phone" size="15" maxlength="20">
               </
label>
            </
p>
            <
p>
              <
label>Home Phone
              
<input name="home_phone" type="text" id="home_phone" size="15" maxlength="20">
              </
label>
               <
label>Fax
               
<input name="fax" type="text" id="fax" size="15" maxlength="20">
               </
label>
            </
p>
            <
p>Method of  payment</p>
            <
p>
              <
label>Check or Money Order
              
<input type="checkbox" name="check" id="check">
              </
label>
               <
label>Visa
               
<input type="checkbox" name="visa" id="visa">
               </
label>
            </
p>
            <
p>
              <
label>Credit Card Number #
              
<input name="creditcard#" type="text" id="creditcard#" size="20" maxlength="25">
              </
label>
            </
p>
            <
p>Choose the level of membership desired below.<br>
            </
p>
          </
form
  #3 (permalink)  
Antiguo 31/10/2008, 09:09
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Formulario-Envioen HTML-Recolectar Datos

usa la clase phpMailer que es facil de manejar

Código PHP:

<div class="Contact">
                    <
form name="Contact" method="post" action="'.ROOT_PATH.'include/htdos/prosForm.php">
                        <
div class="header">
                            <
div class="field">
                                <
div>Nombre:</div>     <INPUT type="text" name="nombre" class="Contact">
                            </
div>
                            
                            <
div class="field">
                                <
div>Email: </div><INPUT type="text" name="email" class="Contact">
                            </
div>
                            
                            <
div class="field">
                                <
div>Tel&#233;fono: </div><INPUT type="text" name="telefono" class="Contact">
                            
</div>
                            
                            <
div class="field">
                                <
div>Asunto: </div><INPUT type="text" name="Subjet" class="Contact">
                            </
div>
                        </
div> <!-- /header -->
                        
                        <
div class="DataEntry">
                            
                            
                            <
div class="Area">
                                
                                <
div class="menu">
                                    
'.newsMenu('').'
                                
</div>
                                <
div class="text">
                                    <
TEXTAREA cols="35" rows="20" name="InfoContact" id="postArea" class="area" ></TEXTAREA>
                                </
div>
</
div> <!-- /Area -->
                              <
input type="hidden" name="sendData" value="'.$arraConv.'">
                            <
input type="submit" name="enviarDataEvent" value="Enviar">
                        </
div><!-- /DataEntry -->
                    </
form>
                </
div> <!-- /Contact --> 
teniendo el formulario despues recibo los datos por POST en prosForm.php

Código PHP:
<?php
include 'class.phpMailer.php'

//comprobamos que venga del fomulario
if($_POST['sendData']){
//recibo los datos
       
$nombre $_POST['nombreCampoInputFormetc']
      
//[...]

   
$mail = new PHPMailer();
   
$mail->Mailer "smtp";    
     
$mail->IsHTML(true); 

            
$mail->Subject $subjet;
            
$mail->Body $msj;

if(!
$mail->Send()){
                    echo 
'error en este envio';
                }
  #4 (permalink)  
Antiguo 31/10/2008, 09:51
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Sonrisa Respuesta: Formulario-Envioen HTML-Recolectar Datos

Gracias por responder Samu22. Ok, mira, como les decía yo no soy programador, así que déjame ver si entiendo tu código y que es lo que debo hacer. La clase PHP Mailer es la que va a llevar los datos del formulario ok, ya puse tu código en Dreamweaver y vi lo que hace así que va bien, una pregunta es como hago con los radio button y los checkbox? otra cosa es, ese código va en mi página del formulario que es HTML, funciona ahi o debo salvar mi página como PHP? Que acción le pongo al botón de submit?

La segunda parte de el código como la cargo?

Tenme un poquito de paciencia , ahi algo aprendo
  #5 (permalink)  
Antiguo 31/10/2008, 11:07
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Formulario-Envioen HTML-Recolectar Datos

Cita:
Iniciado por gVenom Ver Mensaje
Gracias por responder Samu22. Ok, mira, como les decía yo no soy programador, así que déjame ver si entiendo tu código y que es lo que debo hacer. La clase PHP Mailer es la que va a llevar los datos del formulario ok, ya puse tu código en Dreamweaver y vi lo que hace así que va bien, una pregunta es como hago con los radio button y los checkbox? otra cosa es, ese código va en mi página del formulario que es HTML, funciona ahi o debo salvar mi página como PHP? Que acción le pongo al botón de submit?

La segunda parte de el código como la cargo?

Tenme un poquito de paciencia , ahi algo aprendo

Parece que el amigo se desconecto, alguien que me pueda ayudar?
  #6 (permalink)  
Antiguo 31/10/2008, 11:25
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Formulario-Envioen HTML-Recolectar Datos

mira por un lado hace el formulario, en html o el lenguaje que quieras usar, cuando le pasas el parametro action en el tag <form> estas haciendo referencia al archivo que va a recibir los datos, los checkbox y los raddio buttons se identifican con nombre y valor (name, value), en el mismo tag del form tambien se hace referencia a como se van a enviar los datos <form method="post" action="mail.php"> entonces teniendo esto y el formulario completo lo que va a hacer mail.php(en este caso porque esta puesto asi en el ejemplo en donde dice action) es recibir los datos por post, entonces usarias $_POST['nombreDelCampo'] <--- este puede ser cualquier, desde un input text hasta un radio button, mientras el nombre exactamente igual que en el formulario va a devolver el valor que tenga asignado.

por otra parte la clase PHPMailer es la que se encarga de hacer todo el proceso necesario para enviar el mail, con los parametros que le asignes como te mostraba, tenes para especificar si vas a mandar por smtp, si el codigo que vas a mandar es html, despues podes agregarle informacion del remitente.

Entonces mail.php recibe los parametros con los valores del formulario, los procesa a travez de esta clase que se encarga de enviar los mail, lo unico que tenes que hacer es seguir el orden:
Código PHP:
<?php
include 'class.phpMailer.php'// Incluis la clase hay que descargarla abajo te dejo el link
$to $_POST['para']; // En el caso de que haya un campo para en el formulario
$mensaje $_POST['mensaje'// para el mensaje vas a tener que usar un textarea con nombre en esta caso mensaje <textarea name="mensaje"></textarea>

$from '[email protected]';

// hasta aca recolectamos los datos del formulario

//ahora hacemos una instancia de la clase, para usarla

$mail = new PHPMailer();
$mail->Mailer "smtp";    
$mail->AddAddress($to); // Agregamos la direccion que recolectamos del formulario y la guardamos en la variable $to
 
$mail->IsHTML(true); 

$mail->Subject 'mi titulo';//tambien puede venir del formulario
$mail->from $from;
$mail->body $mensaje;

if(!
$mail->Send()){ //si el mail no se envia muestra un errror
       
echo $mail->ErrorInfo;
}

//si no hay errores el mail se envia perfectamente

?>
link para descargar la clase
http://phpmailer.codeworxtech.com/index.php?pg=sf&p=dl
  #7 (permalink)  
Antiguo 31/10/2008, 11:44
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Formulario-Envioen HTML-Recolectar Datos

Ok, gracias, voy a ir a cambiar datos y demás y hacer pruebas a ver como me va, si no mañana o mas tarde aquí estoy molestando de nuevo.
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 05:26.