Foros del Web » Programando para Internet » PHP »

detalle para enviar formulario por mail

Estas en el tema de detalle para enviar formulario por mail en el foro de PHP en Foros del Web. Buenas foreros, luego de mi cuarto dia buscando en internet sobre enviar un formulario por mail con php, y probar aproximadamente 15 codigos php di ...
  #1 (permalink)  
Antiguo 31/08/2009, 11:26
Avatar de brunob23  
Fecha de Ingreso: agosto-2009
Mensajes: 77
Antigüedad: 14 años, 8 meses
Puntos: 0
detalle para enviar formulario por mail

Buenas foreros, luego de mi cuarto dia buscando en internet sobre enviar un formulario por mail con php, y probar aproximadamente 15 codigos php di con uno que me funciona!!.
me envia el correo a la casilla que le marqué pero hay un detalle
no se como hacer que me envie el contenido del formulario, analizando el codigo me di cuenta donde va el contenido del mail.
Lo que tengo es un formulario html que es una encuesta con botones de opcion donde el usuario vota por lo que prefiere y le da a enviar.

el codigo de mi formulario es este:

<form action="enviar.php" method="post" enctype="text/plain">
<input name="radio" type="radio" id="radio" value="radio">
<span class="Estilo4">Campe&oacute;n </span>
<label> <br>
<input type="radio" name="radio" id="radio2" value="radio">
</label>

<span class="Estilo4">Segundo ascenso </span>
<label> <br>
<input type="radio" name="radio" id="radio3" value="radio">
</label>
<span class="Estilo4">Juega playoffs
<label><br>
<input type="radio" name="radio" id="radio4" value="radio">
</label>

</span> <span class="Estilo4">Al fondo de la tabla </span>
<label></label>
<input type="submit" name="button" id="button" value="Enviar">
</form>

Y el del PHP este:

<?
$MailToAddress = "mi_correo";
$MailSubject = "encuesta";
if (!$MailFromAddress) {
$MailFromAddress = "mi_correo";
}

$Header = "Datos del Cliente";
$Footer = "";

if (!is_array($_POST))
return;
reset($_POST);
while(list($key, $val) = each($_POST)) {
$GLOBALS[$key] = $val;
$val=stripslashes($val);
$Message .= "$key = $val\n";
}

if ($Header) {
$Message = $Header."\n\n".$Message."\n\n";
}

mail( "$MailToAddress", "$MailSubject", "$Message", "From: $MailFromAddress");
header ("Location: index");
?>

Podrian ayudarme a lograr que me llegue el resultado de lo que voto el usuario en la encuesta del formulario?
agradezco su ayuda saludos
  #2 (permalink)  
Antiguo 01/09/2009, 06:28
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: detalle para enviar formulario por mail

A cada uno de tus radios, ponle el valor correspondiente en value="" . Actualmente todos tienen el mismo valor (value="radio") por lo cual sin importar cual marquen siempre te va a mandar lo mismo.
__________________
-ronnieb

WebTools
  #3 (permalink)  
Antiguo 01/09/2009, 09:45
Avatar de brunob23  
Fecha de Ingreso: agosto-2009
Mensajes: 77
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: detalle para enviar formulario por mail

Gracias ronnieb por tu respuesta, y en el php como quedaria el codigo para que me envie la opcion que seleccionó el usuario?
saludos
  #4 (permalink)  
Antiguo 01/09/2009, 10:19
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: detalle para enviar formulario por mail

aca te dejo un codigo php que envia meil de un formulario anda perfecto:
lo unico en el formulario al campo E-mail ponele como nombre "mail"
donde dice:
$mymail = es donde ingresas tu meil si queres que lo mande a mas de un meil le copias esta misma linea abajo y le agregas otro meil

$contenido .= es el contenida del meil en cada lines de este iria el nombre del campos quedaria asi $contenido .= "Nombre: ".$_POST["name"]."\n";
en el formulario al campo donde colocan su nombre le pones de nombre "name" y asi con todos los campos del formulario a cada linea de estas le pones un nombre del campo ue queres que aparesca lo otro es mas complejo de explicar pero funciona

Código PHP:
<?php
{
    
$mymail "tu e-meil"// aca va tu direccion de emeil
    
$subject "consulta desde tuweb.com"// aca va el asunto con el que te va a llegar el meil
    
$contenido "consulta para ".$_POST["comercio"]."\n"// estas lineas son de contenido agrega la cantidad que necesites y ponles los nombres de los campos
    
$contenido .= "______________________________________"."\n"."\n";
    
$contenido .= "Nombre: ".$_POST["name"]."\n";
    
$contenido .= "Mail: ".$_POST["mail"]."\n";
    
$contenido .= "______________________________________"."\n"."\n";
    
$contenido .= "Consulta: ".$_POST["consulta"]."\n";
    
$contenido .= "______________________________________"."\n"."\n";
    
$contenido .= "Gracias por ser parte de tu web."."\n";
    
$contenido .= "datos que quieras que aparescan adicional en el meil como telefono de la empresa o nombre de la empresa etc "."\n";
    
$contenido .= "mas datos"."\n";
    
$header .= "From:".$_POST["mail"]."\nReply-To:".$_POST["mail"]."\n";
    
$header .= "X-Mailer:PHP/".phpversion()."\n";
    
$header .= "Mime-Version: 1.0\n";
    
$header .= "Content-Type: text/plain";
    
mail($mymail$subject,utf8_decode($contenido) ,$header);
    
mail($mymail2$subject,utf8_decode($contenido) ,$header);
}
?>
bueno espero que esto te sirba
  #5 (permalink)  
Antiguo 01/09/2009, 10:20
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: detalle para enviar formulario por mail

sirva perdon que bruto que soy con la ortografia
  #6 (permalink)  
Antiguo 01/09/2009, 10:37
Avatar de brunob23  
Fecha de Ingreso: agosto-2009
Mensajes: 77
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: detalle para enviar formulario por mail

gracias intiweb, mi formulario en este caso es una encuesta con radio buttons, que deberia ir en este caso en los contenidos para que me envie SOLO la opcion que selecciono el usuario?
  #7 (permalink)  
Antiguo 01/09/2009, 16:18
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
perdon la demora es lo mismo solo copia el codigo que te di y con algun editor cambia los campos por radio buttons poneles el mismo nombre y el valor que quieras que aparesca

perdon la demora aca te mando el codigo del formulario y el php andando: desime que onda.

formulario:
Código HTML:
<form action="enviar.php" method="post" enctype="text/plain">
<input name="campeon" type="radio" id="radio" value="1">
<span class="Estilo4">Campe&oacute;n </span>
<label> <br>
<input type="radio" name="ascenso" id="radio2" value="1">
</label>

<span class="Estilo4">Segundo ascenso </span>
<label> <br>
<input type="radio" name="play" id="radio3" value="1">
</label>
<span class="Estilo4">Juega playoffs
<label><br>
<input type="radio" name="fondo" id="radio4" value="1">
</label>

</span> <span class="Estilo4">Al fondo de la tabla </span>
<label></label>
<input type="submit" name="button" id="button" value="Enviar">
</form> 
enviar.php:
Código PHP:
<?php 
if ($_POST["campeon"])
{
$preferencia $_POST["campeon"]
}else{};
if (
$_POST["ascenso"])
{
$preferencia $_POST["ascenso"]
}else{};
if (
$_POST["play"])
{
$preferencia $_POST["play"]
}else{};
if (
$_POST["fondo"])
{
$preferencia $_POST["fondo"]
}else{};

    
$mymail "tu e-meil"// aca va tu direccion de emeil 
    
$subject "consulta desde tuweb.com"// aca va el asunto con el que te va a llegar el meil 
    
$contenido .= "Prefirio: "
    
$contenido .= "Mail: "$preferencia"\n"
    
$contenido .= "______________________________________"."\n"."\n"
    
$header .= "From:".$_POST["mail"]."\nReply-To:".$_POST["mail"]."\n"
    
$header .= "X-Mailer:PHP/".phpversion()."\n"
    
$header .= "Mime-Version: 1.0\n"
    
$header .= "Content-Type: text/plain"
    
mail($mymail$subject,utf8_decode($contenido) ,$header); 

?>
bueno espero que te sirva

Última edición por GatorV; 01/09/2009 a las 16:48
  #8 (permalink)  
Antiguo 02/09/2009, 05:44
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: detalle para enviar formulario por mail

Los radios llevan todos el mismo "name" (asi funcionan como un grupo) y cada uno un value="" distinto. En el script PHP, $_POST["radio"] va a tener solo el valor de la opción seleccionada. Por lo cual, una vez le pones un value distinto a cada radio, prueba tu código php original que debería funcionar.

Si no funciona, para este caso en particular, cambia este código

Código PHP:
if (!is_array($_POST))
return;
reset($_POST);
while(list(
$key$val) = each($_POST)) {
$GLOBALS[$key] = $val;
$val=stripslashes($val);
$Message .= "$key = $val\n";

Por esto:

Código PHP:
$Message $_POST["radio"]; 
Siempre y cuando los radios tengan name="radio" como pusiste en el ejemplo original.

Espero que te sirva.
__________________
-ronnieb

WebTools
  #9 (permalink)  
Antiguo 02/09/2009, 06:18
Avatar de brunob23  
Fecha de Ingreso: agosto-2009
Mensajes: 77
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: detalle para enviar formulario por mail

Muchas gracias ronnieb logre un gran avance con tu ayuda, pero sigue habiendo un problema, me envia el correo con un archivo [text/plain] pero está en blanco.
Que puede ser lo que ocurre?
  #10 (permalink)  
Antiguo 02/09/2009, 06:33
Avatar de brunob23  
Fecha de Ingreso: agosto-2009
Mensajes: 77
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: detalle para enviar formulario por mail

Modificando el codigo segun lo que me dijiste y alguna ocurrencia mia el codigo quedó asi:

<?
$MailToAddress = "[email protected]";
$MailSubject = "encuesta";
$Message = $_POST['radio']. "\r\n";

$Header = $_POST['radio']. "\r\n";

if ($Header) {
$Message = $Header."\n\n".$Message."\n\n";
}

mail( "$MailToAddress", "$MailSubject", "$Message" );
header ("Location: index.html");
?>

Pero como te dije me envia un archivo text/plain vacío.
  #11 (permalink)  
Antiguo 03/09/2009, 10:57
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: detalle para enviar formulario por mail

Prueba asi a ver que te llega:

Código PHP:
<?
$MailToAddress 
"[email protected]";
$MailSubject "encuesta";
$Message "Opcion elegida: ".$_POST['radio'];

mail"$MailToAddress""$MailSubject""$Message" );
header ("Location: index.html");
?>
__________________
-ronnieb

WebTools
  #12 (permalink)  
Antiguo 03/09/2009, 13:17
Avatar de brunob23  
Fecha de Ingreso: agosto-2009
Mensajes: 77
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: detalle para enviar formulario por mail

con ese codigo me llega "Opcion elegida: " y nada mas.
el problema no será que el texto del radio button no selecciona al radio button, osea, que al hacer clic en el texto por ejemplo "campeon" se seleccione el radio button de campeon.
en caso de que pueda ser ese el problema, como hago para que se seleccione el radio button al seleccionar el texto?
  #13 (permalink)  
Antiguo 04/09/2009, 06:47
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: detalle para enviar formulario por mail

Un radio button se selecciona al hacer click sobre él, no sobre el texto que tenga al lado. Si quieres que se seleccione presionando el texto eso ya es otro tema, puede hacerse usando javascript, pero yo diria primero que te ande de la forma sencilla, dando click sobre el radio button.

Si tienes varios radio buttons con el mismo name="" todos funcionan como un grupo. Cada uno tiene su value="" y cuando una persona da click en uno de esos radio buttons y submite el formulario, lo que tu php recibe es el value="" del radio button que seleccionó. Un radio button seleccionado tiene un circulito negro dentro de él y los demás no.

Si sigues teniendo problemas, por favor pega aquí el html de tu formulario tal cual lo tienes ahora a ver si detecto el problema. Pero para seleccionar un radio button debes dar click sobre el mismo, sobre el circulito, no sobre el texto de al lado.

Saludos.
__________________
-ronnieb

WebTools
  #14 (permalink)  
Antiguo 05/09/2009, 11:42
Avatar de brunob23  
Fecha de Ingreso: agosto-2009
Mensajes: 77
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: detalle para enviar formulario por mail

No hay caso, no pude solucionarlo.
Te dejo el codigo html de mi formulario:

<form action="enviar.php" method="post" enctype="text/plain">
<input name="radio" type="radio" id="radio" title="Campeon" value="campeon">
<span class="Estilo4">Campeon </span>
<label> <br>
<input type="radio" name="radio" id="radio2" title= "segundo ascenso" value="segundo_ascenso">
</label>

<span class="Estilo4">Segundo ascenso </span>
<label> <br>
<input type="radio" name="radio" id="radio3" title= "juega playoffs" value="juega_playoffs">
</label>
<span class="Estilo4">Juega playoffs
<label><br>
</label>
</span> <span class="Estilo4">
<label>
<input type="radio" name="radio" id="radio4" value="al_fondo_de_la_tabla">
</label>
Al fondo de la tabla </span>
<label></label>
<input type="submit" name="button" id="button" value="Enviar">
</form>

Saludos.
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 21:23.