Foros del Web » Programando para Internet » PHP »

Envio datos por email con checkbox

Estas en el tema de Envio datos por email con checkbox en el foro de PHP en Foros del Web. A ver si yo se explicarme ya que en tema programacion ando un poco verde. Estoy montandole la web a un amigo y lleva dos ...
  #1 (permalink)  
Antiguo 16/10/2008, 14:59
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
Envio datos por email con checkbox

A ver si yo se explicarme ya que en tema programacion ando un poco verde. Estoy montandole la web a un amigo y lleva dos formularios.

El primero es el típico de consulta y funciona enviando los datos al mail mediante un fichero tipo send.php que lleva la siguiente programacion:

<?php
$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$tlf= $_POST['tlf'];

$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 . ", de la empresa " . $empresa . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Contacto desde www.asesoriafonollet.com';

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

echo 'Formulario enviado correctamente.';
?>


Como veis recoge los campos rellandos que son solo de texto. (Está en http://www.asesoriafonollet.com/contacto.html)

El problema viene cuando en el otro formulario deben aparecer un monton de checkbox (está en http://www.asesoriafonollet.com/seguros.html)

PREGUNTA: ¿Puedo copiar el send.php anterior...llamarlo send2.php y meterle lineas que recojan los checkbox que solo han sido activados para qu salgan en el mail que recibe??? ademas de los campos de texto que eso sé como van...

PREGUNTA 2: Como hago para que en vez del texto 'Formulario enviado correctamente.' me envie a una pagina que diga eso mismo pero más bonito...como lo mando a un html tras darle al boton "enviar"????


Gracias y le debo una a quien me ayude.
Gracias
  #2 (permalink)  
Antiguo 16/10/2008, 15:07
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Envio datos por email con checkbox

Si tambien con PHP puedes recoger el valor de los checkboxes marcados, tambien accedes con el nombre de los campos (name). Para la segunda pregunta: Haz dos paginas en html en donde tengas los mensajes de error y los de exito. dependiendo de lo que te haya regresado la funcion que envia el email mandas llamar la funcion header con lo siguiente.
Código PHP:
header("Location: mipagina.html"); 
en donde mi pagina.html es la pagina del aviso.
  #3 (permalink)  
Antiguo 16/10/2008, 15:09
Avatar de RollerSky  
Fecha de Ingreso: marzo-2008
Mensajes: 123
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Envio datos por email con checkbox

1. SI si se puede incluso puedes hacer todo dentro de un mismo formulario...
los valores de los checkbox se recogen igual $var = $_POST['Nombre_checkbox'];

eso si el checkbox tiene que tener un valor y eso es lo que va a recoger(<input="".... value="valor_check");


2. para redireccionar usa la funcion PHP header("location: pagina_a_redirigir.html");


salu2!
  #4 (permalink)  
Antiguo 16/10/2008, 15:10
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
Respuesta: Envio datos por email con checkbox

Vale gracias pero como quedaria la linea de código para recoger un checkbox marcado???
  #5 (permalink)  
Antiguo 16/10/2008, 15:13
Avatar de RollerSky  
Fecha de Ingreso: marzo-2008
Mensajes: 123
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Envio datos por email con checkbox

$var = $_POST['checkbox']; asi lo recoges, eso si si no esta marcado devuelve vacio, para validar si estan o no marcados usa Javascript

o bien

if(!empty($var)){ //Si es diferente de vacio.... envia el mail
mail(...);
}
  #6 (permalink)  
Antiguo 16/10/2008, 15:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
Respuesta: Envio datos por email con checkbox

fijaros en la primera tabla del formulario que hay 6 checkbox.

sería...

<?php
$var = $_POST['hogar];
$var = $_POST['vehículo'];
$var = $_POST['negocio'];
$var = $_POST['decesos'];
$var = $_POST['vida'];
$var = $_POST['comunidades'];

y el resto así???

saldria entonces en el mail solo el campo que se ha activado o como??? lo del valor como vá??? ten en cuenta que estoy usando Dreamweaver, le pongo algo en lo de "Valor activado" en las propiedades del checkbox???

Gracias y perdonad por el coñazo.
  #7 (permalink)  
Antiguo 16/10/2008, 15:24
Avatar de RollerSky  
Fecha de Ingreso: marzo-2008
Mensajes: 123
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Envio datos por email con checkbox

<?php
$var1 = $_POST['hogar];
$var2 = $_POST['vehículo'];
$var3 = $_POST['negocio'];
$var4 = $_POST['decesos'];
$var5 = $_POST['vida'];
$var6 = $_POST['comunidades'];


//si la el campo fue checado devuelve el value del campo
/* <input type="checkbox" name="a" id="a" value="hola"/>, es decir en este caso me devolveria "hola" si estuviera chekado porque ese es el value, si no lo checaron devuelve"" vacio o Nulo


pudes validar que si la variable es vacia o nula(empty) no envie el form

if(!empty($var1) && !empty($var2)){ //Si no esta vacia haga algo(envie el mail) y asi validas todas

}else{
header("location: pagina_error.html");

}
*/
  #8 (permalink)  
Antiguo 16/10/2008, 16:05
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
Respuesta: Envio datos por email con checkbox

amigo perdona el coñazo pero es que en el correo no me aparece ningun valor de los checkbox que activé en el formulario...

el send2.php lo tengo así:

$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 . $apellidos . " \r\n";
$mensaje .= "NIF/CIF: " . $nif ." \r\n";
$mensaje .= "Domicilio: " . $domicilio." \r\n";
$mensaje .= "Poblacion: " . $poblacion ." \r\n";
$mensaje .= "Provincia: " . $provincia." \r\n";
$mensaje .= "C.P.: " . $cp." \r\n";


y sigue....

algo falta para que meta en el correo el checkbox que se active no???? digo yo...
  #9 (permalink)  
Antiguo 17/10/2008, 03:38
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
Respuesta: Envio datos por email con checkbox

--------------------------------------------------------------------------------
amigo perdona el coñazo pero es que en el correo no me aparece ningun valor de los checkbox que activé en el formulario...

el send2.php lo tengo así:

$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 . $apellidos . " \r\n";
$mensaje .= "NIF/CIF: " . $nif ." \r\n";
$mensaje .= "Domicilio: " . $domicilio." \r\n";
$mensaje .= "Poblacion: " . $poblacion ." \r\n";
$mensaje .= "Provincia: " . $provincia." \r\n";
$mensaje .= "C.P.: " . $cp." \r\n";


y sigue....

algo falta para que meta en el correo el checkbox que se active no???? digo yo...
  #10 (permalink)  
Antiguo 17/10/2008, 09:56
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
checkbox activado en mail

Hola estoy usando X-Mailer para recoger datos de un formulario y enviarlos por un email. Los campos de textos los recoge bien pero no sé cómo hacer para que recoja aquellos checkbox con el valor que le he asignado.



el codigo es este:

$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 . $apellidos . " \r\n";
$mensaje .= "NIF/CIF: " . $nif ." \r\n";
$mensaje .= "Domicilio: " . $domicilio." \r\n";
$mensaje .= "Poblacion: " . $poblacion ." \r\n";
$mensaje .= "Provincia: " . $provincia." \r\n";
$mensaje .= "C.P.: " . $cp." \r\n";
$mensaje .= "e-mail: " . $email." \r\n";


pertenece al formulario siguiente: http://www.asesoriafonollet.com/seguros.html

como vereis lleva bastantes Checkbox y ni idea de hacer que aparezcan en el mail.

Gracias de antemano
  #11 (permalink)  
Antiguo 17/10/2008, 10:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: checkbox activado en mail

Hola ceronet,

Los checkbox si estan activados los recoges igual como cualquier input $_POST['nombre_del_checkbox'].

Saludos.
  #12 (permalink)  
Antiguo 17/10/2008, 10:21
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
Respuesta: checkbox activado en mail

recogerlo los recoge pero así como recopilo los datos de los text fields no sé como hacer que en el mail aparezcan los checkbox activados. El problema lo tengo en estas lineas..

$mensaje = "Este mensaje fue enviado por " . $nombre . $apellidos . " \r\n";
$mensaje .= "Tipo de seguro: " . $hogar ." \r\n";
$mensaje .= "NIF/CIF: " . $nif ." \r\n";
$mensaje .= "Domicilio: " . $domicilio." \r\n";
$mensaje .= "Poblacion: " . $poblacion ." \r\n";
$mensaje .= "Provincia: " . $provincia." \r\n";
$mensaje .= "C.P.: " . $cp." \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";

en la linea roja hay que poner algo que haga q en el mail aparezca ese checkbox si se ha activado.

No sé si me explico...perdona
  #13 (permalink)  
Antiguo 17/10/2008, 10:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: checkbox activado en mail

Como te comento, si el checkbox fue activado por ejemplo:
Código html:
Ver original
  1. <input type="checkbox" name="hogar" value="El checkbox del hogar" />

Si tu lo marcas con tu mouse al hacer esto en PHP:
Código php:
Ver original
  1. if(isset($_POST['hogar'])) {
  2.         echo $_POST['hogar']; // imprime: El checkbox del hogar
  3. }

Saludos.
  #14 (permalink)  
Antiguo 17/10/2008, 10:39
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
Respuesta: checkbox activado en mail

que va que no me entero. este es el codigo completo del send.php. señalo en rojo las lineas donde empieza a recoger los datos para meterlos en en mail.

<?php
$var = $_POST['hogar'];
$var = $_POST['vehículo'];
$var = $_POST['negocio'];
$var = $_POST['decesos'];
$var = $_POST['vida'];
$var = $_POST['comunidades'];
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$nif= $_POST['nif'];
$domicilio = $_POST['domicilio'];
$poblacion = $_POST['poblacion'];
$provincia= $_POST['provincia'];
$cp = $_POST['cp'];
$nacimiento = $_POST['nacimiento'];
$tlf= $_POST['tlf'];
$email = $_POST['email'];
$poblacion = $_POST['poblacion'];
$provincia= $_POST['provincia'];

$vivienda = $_POST['vivienda'];
$metros = $_POST['metros'];
$var = $_POST['garaje'];
$año_construccion= $_POST['año_construccion'];
$var = $_POST['ascensor'];
$continente = $_POST['continente'];
$contenido = $_POST['contenido'];
$plantas = $_POST['plantas'];
$pisos = $_POST['pisos'];
$var = $_POST['en _nucleo_urbano'];
$uso = $_POST['uso'];
$var = $_POST['puerta_blindada'];
$var = $_POST['alarma'];
$var = $_POST['rejas'];
$var = $_POST['persianas'];

$vehiculo = $_POST['vehiculo'];
$marca= $_POST['marca'];
$version = $_POST['version'];
$modelo = $_POST['modelo'];
$matricula= $_POST['matricula'];
$matriculado = $_POST['matriculado'];
$poliza_anterior = $_POST['poliza_anterior'];
$carnet= $_POST['carnet'];

$var = $_POST['lunas'];
$var = $_POST['robo'];
$var = $_POST['incendio'];
$var = $_POST['retirada'];



$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 . $apellidos . " \r\n";

$mensaje .= "NIF/CIF: " . $nif ." \r\n";
$mensaje .= "Domicilio: " . $domicilio." \r\n";
$mensaje .= "Poblacion: " . $poblacion ." \r\n";
$mensaje .= "Provincia: " . $provincia." \r\n";
$mensaje .= "C.P.: " . $cp." \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";


$mensaje .= "Tipo de vivienda: " . $vivienda." \r\n";
$mensaje .= "m2: " . $metros." \r\n";

$mensaje .= "Año de construccion: " . $año_construccion." \r\n";

$mensaje .= "Total continente: " . $continente." \r\n";
$mensaje .= "Total contenido: " . $contenido." \r\n";
$mensaje .= "Numero de plantas: " . $plantas." \r\n";
$mensaje .= "Numero de pisos: " . $pisos." \r\n";

$mensaje .= "Uso: " . $uso." \r\n";




$mensaje .= "Tipo de vehiculo: " . $vehiculo." \r\n";
$mensaje .= "Marca: " . $marca." \r\n";
$mensaje .= "Version: " . $version." \r\n";
$mensaje .= "Modelo: " . $modelo." \r\n";
$mensaje .= "Matricula: " . $matricula." \r\n";
$mensaje .= "Matriculado el: " . $matriculado." \r\n";
$mensaje .= "Nº de poliza anterior: " . $poliza_anterior." \r\n";
$mensaje .= "Fecha carnet de conducir: " . $carnet." \r\n";



$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Solicitud de poliza de seguros';

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

header("location: exito.html");
?>
  #15 (permalink)  
Antiguo 17/10/2008, 11:27
 
Fecha de Ingreso: mayo-2004
Mensajes: 122
Antigüedad: 20 años
Puntos: 0
Respuesta: Envio datos por email con checkbox

Sigue sin meterme en el correo los checkbox activados, paso el coigo completo de send.php. a partir de la linea roja es donde recopila los campor, ahi cómo recojo los checkbox activados?????


<?php
$var1 = $_POST['hogar'];
$var2 = $_POST['vehículo'];
$var3 = $_POST['negocio'];
$var4 = $_POST['decesos'];
$var5 = $_POST['vida'];
$var6 = $_POST['comunidades'];
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$nif= $_POST['nif'];
$domicilio = $_POST['domicilio'];
$poblacion = $_POST['poblacion'];
$provincia= $_POST['provincia'];
$cp = $_POST['cp'];
$nacimiento = $_POST['nacimiento'];
$tlf= $_POST['tlf'];
$email = $_POST['email'];
$poblacion = $_POST['poblacion'];
$provincia= $_POST['provincia'];

$vivienda = $_POST['vivienda'];
$metros = $_POST['metros'];
$var7 = $_POST['garaje'];
$año_construccion= $_POST['año_construccion'];
$var8 = $_POST['ascensor'];
$continente = $_POST['continente'];
$contenido = $_POST['contenido'];
$plantas = $_POST['plantas'];
$pisos = $_POST['pisos'];
$var9 = $_POST['en _nucleo_urbano'];
$uso = $_POST['uso'];
$var10 = $_POST['puerta_blindada'];
$var11 = $_POST['alarma'];
$var12 = $_POST['rejas'];
$var13 = $_POST['persianas'];

$vehiculo = $_POST['vehiculo'];
$marca= $_POST['marca'];
$version = $_POST['version'];
$modelo = $_POST['modelo'];
$matricula= $_POST['matricula'];
$matriculado = $_POST['matriculado'];
$poliza_anterior = $_POST['poliza_anterior'];
$carnet= $_POST['carnet'];

$var14 = $_POST['lunas'];
$var15 = $_POST['robo'];
$var16 = $_POST['incendio'];
$var17 = $_POST['retirada'];



$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 .= $apellidos . " \r\n";
$mensaje .= "Tipo de seguro " . $hogar ." \r\n";
$mensaje .= "NIF/CIF: " . $nif ." \r\n";
$mensaje .= "Domicilio: " . $domicilio." \r\n";
$mensaje .= "Poblacion: " . $poblacion ." \r\n";
$mensaje .= "Provincia: " . $provincia." \r\n";
$mensaje .= "C.P.: " . $cp." \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";


$mensaje .= "Tipo de vivienda: " . $vivienda." \r\n";
$mensaje .= "m2: " . $metros." \r\n";

$mensaje .= "Año de construccion: " . $año_construccion." \r\n";

$mensaje .= "Total continente: " . $continente." \r\n";
$mensaje .= "Total contenido: " . $contenido." \r\n";
$mensaje .= "Numero de plantas: " . $plantas." \r\n";
$mensaje .= "Numero de pisos: " . $pisos." \r\n";

$mensaje .= "Uso: " . $uso." \r\n";




$mensaje .= "Tipo de vehiculo: " . $vehiculo." \r\n";
$mensaje .= "Marca: " . $marca." \r\n";
$mensaje .= "Version: " . $version." \r\n";
$mensaje .= "Modelo: " . $modelo." \r\n";
$mensaje .= "Matricula: " . $matricula." \r\n";
$mensaje .= "Matriculado el: " . $matriculado." \r\n";
$mensaje .= "Nº de poliza anterior: " . $poliza_anterior." \r\n";
$mensaje .= "Fecha carnet de conducir: " . $carnet." \r\n";



$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected];
$asunto = 'Solicitud de poliza de seguros';

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

header("location: exito.html");
?>
  #16 (permalink)  
Antiguo 17/10/2008, 11:43
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: checkbox activado en mail

Código php:
Ver original
  1. $var = $_POST['hogar'];
  2. $var = $_POST['vehículo'];
  3. $var = $_POST['negocio'];
  4. $var = $_POST['decesos'];
  5. $var = $_POST['vida'];
  6. $var = $_POST['comunidades'];

Estas sustituyendo el valor de $var en cada linea.
En PHP no es necesario inicializar una variable antes de usarla como en Javascript u otros lenguajes de programacion (ASP).
  #17 (permalink)  
Antiguo 17/10/2008, 13:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Envio datos por email con checkbox

Temas unidos por favor no dupliques temas.
  #18 (permalink)  
Antiguo 17/10/2008, 21:46
 
Fecha de Ingreso: octubre-2008
Mensajes: 30
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Envio datos por email con checkbox

Tienes muchos problemas de programación, creo deberías de seguir lo siguiente,

1. los checkbox deben siempre estar dentro de un formulario, sino ni a palos te los toma el servidor

Código HTML:
<form name="form" action="tu_pagina.php" method="POST or GET">
<input type="checkbox" name="" value=""/>
.
.
.
</form> 
2. las variables que uses hay ocasiones que puedes volverlas a ocupar, pero cuando las ocupas por más de una vez estas se van reemplazando con el valor que le asignes.

Código PHP:
$var=0;
$var=1;
echo
"$var";//te mostrara 1. 
3. estas mal gastando muchas variables, debes de pensar que consoló tomándolas con
Código PHP:
$_POST['nombre_checkbox'
puedes ocuparla ya como variable aunque siempre si quieres validarlas es conveniente guardarlas.

espero verte ayudado en algo y te deseo mucha suerte adios.
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 10:08.