Foros del Web » Programando para Internet » PHP »

Enviar listbox en formulario

Estas en el tema de Enviar listbox en formulario en el foro de PHP en Foros del Web. Buenas tengo un listbox (select) en mi formulario y quiero poder enviar el valor seleccionado al email. mi codigo es este: <p>Como nos conocistes<br> <select ...
  #1 (permalink)  
Antiguo 08/12/2011, 11:33
 
Fecha de Ingreso: noviembre-2011
Ubicación: madrid
Mensajes: 30
Antigüedad: 12 años, 5 meses
Puntos: 0
Enviar listbox en formulario

Buenas tengo un listbox (select) en mi formulario y quiero poder enviar el valor seleccionado al email.

mi codigo es este:

<p>Como nos conocistes<br>
<select name="listbox" size="3">
<option value="Option 1" selected>Buscador</option>
<option value="Option 2">Un amigo</option>
</select>
</p>

y luego en enviar.php tengo :

$lista= $_POST['listbox'];

if(mail($to, $subject,$lista,$message, $headers,'[email protected]'))
{
echo 1; //SUCCESS
}
else {
echo 2; //FAILURE - server failure
}
}
else {
echo 3; //FAILURE - not valid email

}

pero me da error, concretamente el tercero pero yo creo que el fallo esta a la hora de tomar el valor.

gracias
  #2 (permalink)  
Antiguo 08/12/2011, 11:47
Avatar de molig  
Fecha de Ingreso: septiembre-2006
Ubicación: Acapulco
Mensajes: 50
Antigüedad: 17 años, 6 meses
Puntos: 15
Respuesta: Enviar listbox en formulario

para empezar, seguro que el codigo que colocas es el que tienes, porque ahi hay un error: una sola comprobacion con el if y dos else.
__________________
He aprendido que un hombre
sólo tiene derecho a mirar a otro hacia abajo,
cuando ha de ayudarle a levantarse.
GGM
  #3 (permalink)  
Antiguo 08/12/2011, 12:10
 
Fecha de Ingreso: noviembre-2011
Ubicación: madrid
Mensajes: 30
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Enviar listbox en formulario

jeje a ver ay mas codigo pero he pegado lo que yo creia principal xd pongo todo entero



<?php
if (isset($_POST["cambiar"])){


if(isset($_POST['submit'])) {




error_reporting(E_NOTICE);
function valid_email($str)
{
return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}


if($_POST['name']!='' && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && strlen($_POST['comment'])>1)
{
$to = preg_replace("([\r\n])", "", hexstr($_POST['receiver']));
$from = preg_replace("([\r\n])", "", $_POST['email']);
$subject = "Email desde distalle.es ".$_POST['name'];

$message = $_POST['comment'];

$match = "/(bcc:|cc:|content\-type:)/i";
if (preg_match($match, $to) ||
preg_match($match, $from) ||
preg_match($match, $message)) {
die("Header injection detected.");
}
$headers = "From: ".$from."\r\n";
$headers .= "Reply-to: ".$from."\r\n";

}
$lista= $_POST['listbox'];
if(mail($to, $subject,$lista,$message, $headers,'[email protected]'))
{
echo 1; //SUCCESS
}
else {
echo 2; //FAILURE - server failure
}
}
else {
echo 3; //FAILURE - not valid email

}
}else{
die("Direct access not allowed!");
}

function hexstr($hexstr) {
$hexstr = str_replace(' ', '', $hexstr);
$hexstr = str_replace('\x', '', $hexstr);
$retstr = pack('H*', $hexstr);
return $retstr;
}

?>


todo esto funciona lo que necesito saber es meter a la hora de enviar el email el valor del list, añadi en negrita lo ultimo que añadi y donde esta el error.
gracias
  #4 (permalink)  
Antiguo 08/12/2011, 12:51
Avatar de molig  
Fecha de Ingreso: septiembre-2006
Ubicación: Acapulco
Mensajes: 50
Antigüedad: 17 años, 6 meses
Puntos: 15
Respuesta: Enviar listbox en formulario

ok bueno al parecer no tienes problema al recibir el valor del listbox, solo que te regresara Option 1 u Option 2 ya que es lo que esta en el VALUE del SELECT, si dices que te manda el 3er mensaje del error:

Código PHP:
//...
else {
     echo 
3//FAILURE - not valid email
}
//... 
ese corresponde a la comprobación del if

Código PHP:
if(isset($_POST['submit'])) {
//...

lo cual significa que si es te muestra el error del echo 3 es porque no esta definida la variable llamada submit y no esta entrando a enviar el mail.
__________________
He aprendido que un hombre
sólo tiene derecho a mirar a otro hacia abajo,
cuando ha de ayudarle a levantarse.
GGM
  #5 (permalink)  
Antiguo 08/12/2011, 15:31
 
Fecha de Ingreso: noviembre-2011
Ubicación: madrid
Mensajes: 30
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Enviar listbox en formulario

gracias por responder ya lo solucione jeje quiza con un poquito de trampas pero lo que hice fue añadir ese valor del listbox como parte del mensaje de tal forma que quede asi:

cuerpo del mensaje

Nos conoció por: ( aqui el valor del listbox)

todo solucionado.

Etiquetas: formulario, listbox
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 23:15.