Foros del Web » Programando para Internet » PHP »

Formulario en PHP (casi, casi...)

Estas en el tema de Formulario en PHP (casi, casi...) en el foro de PHP en Foros del Web. Hola, después de dar muchas vueltas, he logrado crear un archivo enviar.php que funcione con el formulario que tengo en la siguiente página Me gustaría ...
  #1 (permalink)  
Antiguo 09/05/2007, 16:43
 
Fecha de Ingreso: marzo-2007
Ubicación: Almería
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 0
Formulario en PHP (casi, casi...)

Hola, después de dar muchas vueltas, he logrado crear un archivo enviar.php que funcione con el formulario que tengo en la siguiente página

Me gustaría que entrárais y viérais el tipo de formulario (la web en sí está incompleta, así que no os asustéis), porque tengo una duda.

Veréis, el código PHP del archivo es el siguiente:
Código PHP:
<?php

$nombre 
$_POST['nombre'];
$telefono $_POST['telefono'];
$direccion $_POST['direccion'];
$mail $_POST['mail'];

$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 pedido fue realizado por " $nombre ". Su nº de tlf es " $telefono " \r\n";
$mensaje .= "Su direccion de envio del pedido es: " $direccion " \r\n";
$mensaje .= "Mensaje: " $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Formulario de Pedido para Cervantes Vending';

mail($para$asuntoutf8_decode($mensaje), $header);

echo 
'Su mensaje ha sido enviado correctamente. Gracias.';
?>
Código, que por cierto, he copieteado de un tutorial que alguien del foro escribió. Jijijiji

Bueno, el caso es que, claro, al ser copiado, me salen las opciones que vienen ahí, pero no las otras que yo he puesto, como las casillas de verificación y el nª de unidades de cada producto. Así que me gustaría que me dijeráis que tengo que escribir para que me salgan. El email que me llega cuando relleno el formulario es el siguiente:

Mime-Version: 1.0
Content-Type: text/plain
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on ns1.***********.com
X-Spam-Level:
X-Spam-Status: No, score=0.2 required=6.0 tests=NO_REAL_NAME autolearn=no
version=3.0.4

Este pedido fue realizado por Gema Lenguasco. Su nº de tlf es 950151083
Su direccion de envio del pedido es: Calle Amapola nº3
Mensaje:
Enviado el 10/05/2007


Como veis, ni rastro del resto de opciones (que fui tonta al creer que saldrían automáticamente)

En fin, a ver si podéis ayudarme.
Un saludo y muchas gracias.
__________________
Vending en Almería
  #2 (permalink)  
Antiguo 09/05/2007, 21:50
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 15 años
Puntos: 2
Re: Formulario en PHP (casi, casi...)

Por lo que vi (bastante rápido) veo que el formulario esta bien, cada campo tiene su nombre pero lo que tienes que entender es que para acceder al valor que se lleno en cada campo debes obtenerlo de la siguiente manera:
Código PHP:
$_POST['NOMBRE_DE_TU_CAMPO'
y por lo que vi en el formulario tiene un campo que se llama "unidades nesquik" entonces un ejemplo para saber que se ingreso en ese campo:
Código PHP:
//un echo o lo agregas a la cadena o lo que quieras
$_POST['unidades nesquik'
Saludos.
  #3 (permalink)  
Antiguo 10/05/2007, 09:21
 
Fecha de Ingreso: marzo-2007
Ubicación: Almería
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 0
Re: Formulario en PHP (casi, casi...)

Gracias. Voy a probarlo a ver qué tal.

Si no me va bien, volveré... (Sí, es una amenaza... )
__________________
Vending en Almería
  #4 (permalink)  
Antiguo 10/05/2007, 09:52
 
Fecha de Ingreso: marzo-2007
Ubicación: Almería
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 0
Re: Formulario en PHP (casi, casi...)

Pues no, definitivamente, no me ha ido bien; y me gustaría saber qué tengo mal:

Éste es el código final que he hecho:
Código PHP:
<?php

$nombre 
$_POST['nombre'];
$telefono $_POST['telefono'];
$direccion $_POST['direccion'];
$bonkamezcla $_POST['bonka mezcla'];
$bonkanatural $_POST['bonka natural'];
$nescafeoro $_POST['nescafe oro'];
$lacta $_POST['leche lacta'];
$alpina $_POST['leche alpina'];
$nesquik $_POST['nesquik'];
$nestea $_POST['nestea'];
$unidades bonkamezcla $_POST['unidades bonka mezcla'];
$unidades bonkanatural $_POST['unidades bonka natural'];
$unidades nescafe $_POST['unidades nescafe'];
$unidades lacta $_POST['unidades lacta'];
$unidades alpina $_POST['unidades alpina'];
$unidades nesquik $_POST['unidades nesquik'];
$unidades nestea $_POST['unidades nestea'];

$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

[
B]$mensaje "Este pedido fue realizado por " $nombre ". Su nº de tlf es " $telefono " \r\n";
$mensaje .= "Su direccion de envio del pedido es: " $direccion " \r\n";
$mensaje .= "Bonka Mezcla " $bonkamezcla  ". Unidades " $unidades bonkamezcla .  " \r\n";
$mensaje .= "Bonka Natural " $bonkanatural  ". Unidades " $unidades bonkanatural .  " \r\n";
$mensaje .= "Nescafé Oro " $nescafeoro  ". Unidades " $unidades nescafe .  " \r\n";
$mensaje .= "Leche Lacta " $lacta  ". Unidades " $unidades lacta .  " \r\n";
$mensaje .= "Leche Alpina " $alpina  ". Unidades " $unidades alpina .  " \r\n";
$mensaje .= "Nesquik Lacte " $nesquik  ". Unidades " $unidades nesquik .  " \r\n";
$mensaje .= "Nestea " $nestea  ". Unidades " $unidades nestea .  " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());[/B]

$para '[email protected]';
$asunto 'Pedido Nestlé para Cervantes Vending';

mail($para$asuntoutf8_decode($mensaje), $header);

echo 
'Su pedido ha sido enviado correctamente. Gracias.';
?>
No lo sé, pero supongo que el error estará en el mensaje, que es lo que más he cambiado. Al enviarlo, me sale el siguiente error:
Parse error: parse error, unexpected T_STRING in /var/www/vhosts/almerivending.com/httpdocs/cervantesvending/enviar.php on line 13

Venga, a aver si podéis ayudarme. Un saludo.
__________________
Vending en Almería
  #5 (permalink)  
Antiguo 10/05/2007, 10:23
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 15 años
Puntos: 2
Re: Formulario en PHP (casi, casi...)

Mirá, el error lo tenes aca:
Código PHP:
$unidades bonkamezcla $_POST['unidades bonka mezcla'];
$unidades bonkanatural $_POST['unidades bonka natural'];
$unidades nescafe $_POST['unidades nescafe'];
$unidades lacta $_POST['unidades lacta'];
$unidades alpina $_POST['unidades alpina'];
$unidades nesquik $_POST['unidades nesquik'];
$unidades nestea $_POST['unidades nestea']; 
Las variables no pueden tener espacios, osea $unidades lacta siempre dará error, en todo caso reemplaza el espacio con un _ y quedaría $unidades_lacta.

Saludos.
  #6 (permalink)  
Antiguo 10/05/2007, 10:38
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 15 años
Puntos: 2
Re: Formulario en PHP (casi, casi...)

Lee esto que te ayudara.
  #7 (permalink)  
Antiguo 10/05/2007, 12:09
 
Fecha de Ingreso: marzo-2007
Ubicación: Almería
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 0
Re: Formulario en PHP (casi, casi...)

¡¡¡¡Bien!!! Ya lo he conseguido

Y ahora, para rematar, una última cosita:
El email que me llega es éste:

Mime-Version: 1.0
Content-Type: text/plain
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on ns1.***********.com
X-Spam-Level:
X-Spam-Status: No, score=0.2 required=6.0 tests=NO_REAL_NAME autolearn=no
version=3.0.4

Este pedido fue realizado por Maria Lopez. Su nº de tlf es 000000000
Su direccion de envio del pedido es: Calle talycual
Bonka Mezcla checkbox Unidades 1
Bonka Natural Unidades
Nescafe Oro checkbox Unidades 5
Leche Lacta checkbox Unidades 3
Leche Alpina Unidades
Nesquik Lacte Unidades
Nestea Unidades
Enviado el 10/05/2007


Y me gustaría saber si se le pude dar formato al texto, o que sólo me aparezcan las opciones seleccionadas. También me gustaría saber si hay alguna forma de que aparezcan los acentos cuando alguien los escribe.

Muchísimas gracias por ayudarme. Me ha salvado la vida (o casi)
__________________
Vending en Almería
  #8 (permalink)  
Antiguo 10/05/2007, 13:49
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 15 años
Puntos: 2
Re: Formulario en PHP (casi, casi...)

Cambia ésta linea:
Código PHP:
$header .= "Content-Type: text/plain"
por:
Código PHP:
$header .= "Content-Type: text/plain; charset=UTF-8\r\n"
Con eso le indicas que mandaras el contenido en UTF-8 y luego mandas la información pero usas la función utf8_encode().

Si quieres darle formato al mail cambias el Content-Type y pones "text/html" y puedes enviar código HTML sin problemas.

Y si quieres enviar solo las opciones que se rellenaron tiene que leer sobre Estructuras de Control, Operadores de Comparación, Operadores de Lógica y de seguro la función isset() y empty() te ayudaran.

Saludos.

PD: Por favor, lee el manual oficial, con leer la sección Referencia del lenguaje ya estarás capacitada para muchas cosas y no estarás preguntado por cada duda.
  #9 (permalink)  
Antiguo 10/05/2007, 14:22
 
Fecha de Ingreso: marzo-2007
Ubicación: Almería
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 0
Re: Formulario en PHP (casi, casi...)

Bien. Muchas gracias por la ayuda, por los enlaces y por el tiempo invertido.
__________________
Vending en Almería
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 16:00.