Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: gh1E en 6 Mayo 2013, 23:15 pm



Título: Por favor para completar el código de formulario en php y checkbox? [Resuelto]
Publicado por: gh1E en 6 Mayo 2013, 23:15 pm
Saludos amigos;

Comento que estoy ingresando al mundo php, el cual me parece en realidad muy eficaz, ahora una pequeña duda, se que tengo que cambiar algo o añadir pero no se donde ni como.

El código del formulario en html

formulario html
Código:
<form name='formulario' id='formulario' method='post' action='envio.php' target='_self' enctype="multipart/form-data" accept-charset="UTF-8">^M
<center>^M
<table>^M
<tr><td><h3>Campos Obligatorios</h3></td></tr>
<tr><td><h5>Nombre:  </h5></td><td><input type='text' name="Nombre" id='Nombre' required="required" autocomplete="off"/>*</td></tr>
<tr><td><h5>Asunto: </h5></td><td><input type='text' name="Asunto" id='Asunto'' required="required" autocomplete="off">*<font size="1" color="red"> Ingresar el asunto que ir&aacute; en el env&iacute;o.</font></td></tr>
<tr><td><h5>Listas a Enviar:  </h5></td></tr>
</tr>
<tr>
<td></td>
<td><font size="2"><input type="checkbox" name="ListaEnviar[]" id="RLegal" value="Socios_RLegal">Rep. Legales</td>
<td><font size="2"><input type="checkbox" name="ListaEnviar[]" id="ARLegal" value="Socios_Asist_RLegal">Asist. Rep. Legales</td>
</tr>
<tr>
<td></td>
<td><font size="2"><input type="checkbox" name="ListaEnviar[]" value="Socios_Ejecutivos">Ejecutivos</td>
<td><font size="2"><input type="checkbox" name="ListaEnviar[]" value="Socios_Miem_Directorio">Miem. de Directorio</td>
</tr>
<tr><td><h5>Imagen:<br>
<font size="1">La imagen debe ser extensi&oacute;n .jpg</font></h5></td>
<td><input type='file' name='Arte' id='Arte'>*<font color="red" size="1">(max. 250 Kb.)</font></td><td></td>
<td></td>
<td></td>
<td><input value="Borrar" type="reset"></td>
<td><center><input type='submit' value='EnviarSolicitud'></center></td></tr>
</table>
</center>
</form>

Ahora el siguiente código lo tome de una web q no recuerdo muy bien, pero hacía lo q necesito, adjuntar un archivo y enviarlo al correo.

Y ese es mi inconveniente como no entiendo muy bien el código pues no sé, donde agregar o más bien donde agregar la opción para que me envíe los checkbox del formulario, por que el original no lo hace.

El código de php
enviar.php
Código:
<?php

function form_mail($sPara, $sAsunto, $sTexto, $sDe)^M
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;

foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=utf-8\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] < 500000 )
{

$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero = fopen($vAdjunto["tmp_name"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}

if (form_mail("pepito@hotmail.com","Evento",
"Los datos introducidos en la solicitud son:\n\n", "noreply@hotmail.com"))
?>

Gracias de antemano por toda la ayuda que me puedan brindar, de verdad que estoy un poco perdido con esto.

Salu2

gh13  ::)


Título: Re: Por favor para completar el código de formulario en php y checkbox?
Publicado por: engel lex en 6 Mayo 2013, 23:35 pm
no entiendo el problema...

explica bien que quieres lograr con tu codigo y cual problema te da para lograrlo


Título: Re: Por favor para completar el código de formulario en php y checkbox?
Publicado por: gh1E en 7 Mayo 2013, 00:00 am
Hola;

Gracias por tu interés el problema es q al momento de ejecutar el "Enviar" del formulario, al correo me llega;

Nombre: Pepito
Asunto: Investigacion
ListaEnviar: Array (Aquí es el problema que no me llega los campos seleccionados si no la palabra "array")

Perdona quizá no me expllque antes muy bien pero justamente no sabría como capturar los datos seleccionados y que eso me envíe al correo.

Saludos.


Título: Re: Por favor para completar el código de formulario en php y checkbox?
Publicado por: engel lex en 7 Mayo 2013, 00:27 am
si estás viendo lo que te llega usando la funcion "echo" esa funcion solo lee strings y numeros...

si quieres ver el contenido real puedes usar var_dump que imprime la variable que le coloques y su tipo o print_r que hace lo mismo pero mas resumido, usa eso para leer y avisame que conseguiste


Título: Re: Por favor para completar el código de formulario en php y checkbox?
Publicado por: gh1E en 9 Mayo 2013, 18:30 pm
Gracias amigos;

Por la ayuda pero ya encontré la solución y disculpen por haberme enredado en la pregunta inicial, básicamente lo que necesitaba es recoger  los datos de un formulario con selección múltiple y con checkbox, y luego eso enviarme por correo.

Para quién le puede interesar.

El código del formulario.
Código:
<html>
td></td>
<td><font size="2"><input type="checkbox" name="Lista_a_Enviar[]"  value="Representantes Legales">Rep. Legales</td>
<td><font size="2"><input type="checkbox" name="Lista_a_Enviar[]"  value="Asistentes de Representantes">Asist. Rep. Legales</td>
</html>


El del php, tan simple como eso

Código:
// Se encuentra encerrado entre llaves, por que se mezclaba con mi otro código.
{$listas = '';
foreach($_POST['Lista_a_Enviar'] as $valores){
$listas .= ", ".$valores;
}
}
// Y se agrega la variable $listas al cuerpo del mensaje.
$sTexto .= $listas;

mail($sPara, $sAsunto, $sTexto, $sCabeceras)


Salu2

gh13  ::)