Foros del Web » Programando para Internet » PHP »

Formulario php de pedidos

Estas en el tema de Formulario php de pedidos en el foro de PHP en Foros del Web. Buenas a todos, tengo una duda sobre un formulario php de pedidos, me funciona muy bien pero en el correo me llegan todos los campos ...
  #1 (permalink)  
Antiguo 20/10/2010, 11:37
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Formulario php de pedidos

Buenas a todos, tengo una duda sobre un formulario php de pedidos, me funciona muy bien pero en el correo me llegan todos los campos que he puesto, hay alguna manera de que solo me lleguen al correo los campos que se han rellenado? aqui os dejo parte del codigo para que os hagais una idea de lo que me refiero:

--------------------------------------------------------------------------------------------------------
if (!$HTTP_POST_VARS){
?>
</p>
<form action="pedido.php" method=post>

Nombre:<br />
<input type=text name="nombre" size=10> <br>
Email:<br />
<input type=text name=email size=10>
Observaciones:<br />
<textarea name=coment cols=10 rows=6></textarea>
<br>
<input type=submit value="Enviar">

Ref: 1234 | cantidad: <input type=text name="1" size="1">
Ref: 1356 | cantidad: <input type=text name="2" size="1">
Ref: 1258 | cantidad: <input type=text name="3" size="1">
Ref: 1789 | cantidad: <input type=text name="4" size="1">
Ref: 1879 | cantidad: <input type=text name="5" size="1">

...
....
......

<?
}else{
$cuerpo = "Pedido web\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "observaciones: " . $HTTP_POST_VARS["coment"] . "\n"
$cuerpo .= "Ref: 1234: " . $HTTP_POST_VARS["1"] . "\n";
$cuerpo .= "Ref: 1356: " . $HTTP_POST_VARS["2"] . "\n";
$cuerpo .= "Ref: 1258: " . $HTTP_POST_VARS["3"] . "\n";
$cuerpo .= "Ref: 1789: " . $HTTP_POST_VARS["4"] . "\n";
$cuerpo .= "Ref: 1879: " . $HTTP_POST_VARS["5"] . "\n";
;

mail("[email protected]","Nuevo pedido web ",$cuerpo);

echo "Gracias por realizar el pedido.";
}
?>
--------------------------------------------------------------------------------------------------------

Lo que yo querría es que me llegase solo los campos en los que rellenasen algo en la [cantidad: <input type=text name="5" size="1">] con un if textname=0 no $cuerpo. no todas las referencias y solo escrita la que han rellenado, no se si me explico bien, haber si podeis resolverme algo.
Muchas gracias.
  #2 (permalink)  
Antiguo 20/10/2010, 11:47
Avatar de atoleon  
Fecha de Ingreso: marzo-2007
Mensajes: 156
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: Formulario php de pedidos

en lugar de esto:
$cuerpo .= "Ref: 1234: " . $HTTP_POST_VARS["1"] . "\n";
escribe esto:
if (!$HTTP_POST_VARS["1"] or $HTTP_POST_VARS == "")
$cuerpo .= "Ref: 1234: " . $HTTP_POST_VARS["1"] . "\n";

No se si habrá algún fallo en el código pero vamos, la idea es esa, comprobar si se ha escrito algo antes de guardarlo en $cuerpo.
  #3 (permalink)  
Antiguo 20/10/2010, 11:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Formulario php de pedidos

Cita:
Iniciado por atoleon Ver Mensaje
en lugar de esto:
$cuerpo .= "Ref: 1234: " . $HTTP_POST_VARS["1"] . "\n";
escribe esto:
if (!$HTTP_POST_VARS["1"] or $HTTP_POST_VARS == "")
$cuerpo .= "Ref: 1234: " . $HTTP_POST_VARS["1"] . "\n";

No se si habrá algún fallo en el código pero vamos, la idea es esa, comprobar si se ha escrito algo antes de guardarlo en $cuerpo.
la idea es que no esten vacios

Código PHP:
//mejor usar $_POST
if (isset($_POST["1"]) AND $_POST["1"] != "")
   
$cuerpo .= "Ref: 1234: " $_POST["1"] . "\n"
  #4 (permalink)  
Antiguo 20/10/2010, 12:20
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Formulario php de pedidos

Perfecto!! asi me va de lujo, muchísimas gracias a los dos! :D

Etiquetas: formulario
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:32.