Foros del Web » Programando para Internet » PHP »

Orden de Variables en Formulario

Estas en el tema de Orden de Variables en Formulario en el foro de PHP en Foros del Web. Hola que tal amigos, tengo un Formulario que hicce en Flash junto a su PHP para que los datos sean enviados y funciona correctamente. Código ...
  #1 (permalink)  
Antiguo 16/09/2012, 10:14
Avatar de bathory84  
Fecha de Ingreso: junio-2010
Ubicación: Venezuela
Mensajes: 257
Antigüedad: 13 años, 10 meses
Puntos: 1
Orden de Variables en Formulario

Hola que tal amigos, tengo un Formulario que hicce en Flash junto a su PHP para que los datos sean enviados y funciona correctamente.

Código PHP:
<?php
if ($_POST['nombre'] != "") {
    
$dest "destinatario1";
    
$head "From: ".$_POST['nombre']."\r\n";
    
$head.= "To: destinatario2\r\n";
    
// Ahora creamos el cuerpo del mensaje
    
$msg.= "-------------------------------------------------------------------------------- \n";
    
$msg.= "Ha Recibido un Pago desde la Pagina Web\n";
    
$msg.= "-------------------------------------------------------------------------------- \n";
    
$msg.= "SITIO DE COMPRA:    ".$_POST['inputcombo1']."\n";
    
$msg.= "CEDULA DE IDENTIDAD:  ".$_POST['cedula']."\n";
    
$msg.= "NOMBRE:    ".$_POST['nombre']."\n";
    
$msg.= "APELLIDO:    ".$_POST['apellido']."\n";
    
$msg.= "CORREO ELECTRONICO:    ".$_POST['from']."\n";
    
$msg.= "MODO DE ENVIO:    ".$_POST['inputcombo2']."\n";
    
$msg.= "-------------------------------------------------------------------------------- \n";
    
$msg.= "DIRECCION COMPLETA:    ".$_POST['direccion']."\n";
    
$msg.= "-------------------------------------------------------------------------------- \n";
    
$msg.= "CIUDAD / ESTADO:    ".$_POST['ciudad']."\n";
    
$msg.= "TELEFONOS:    ".$_POST['telefono']."\n";
    
$msg.= "ARTICULO COMPRADO / COLOR:    ".$_POST['articulo']."\n";
    
$msg.= "SEUDONIMO EN MERCADO LIBRE:    ".$_POST['seudonimo']."\n";
    
$msg.= "-------------------------------------------------------------------------------- \n";
    
$msg.= "ENVIO PAGADO:    ".$_POST['inputcombo3']."\n";
    
$msg.= "BANCO DONDE SE REALIZO EL PAGO:    ".$_POST['banco']."\n";
    
$msg.= "NUMERO DE DEPOSITO O TRANSFERENCIA:    ".$_POST['numero']."\n";
    
$msg.= "MONTO PAGADO:    ".$_POST['monto']."\n";
    
$msg.= "FECHA DE PAGO:    ".$_POST['fecha']."\n";
    
$msg.= "-------------------------------------------------------------------------------- \n";
    
$msg.= "Datos Importantes de la Direccion del Comprador\n";
    
$msg.= "-------------------------------------------------------------------------------- \n";
    
$msg.= "TIPO DE ENVIO:    ".$_POST['dato']."\n";
    
$msg.= "MUNICIPIO:    ".$_POST['municipio']."\n";
    
$msg.= "PARROQUIA:    ".$_POST['parroquia']."\n";
    
$msg.= "CODIGO POSTAL:    ".$_POST['postal']."\n";
    
$msg.= "-------------------------------------------------------------------------------- \n";
    
$msg.= " Enviado desde: www.paginaweb.com \n";
    
// Finalmente enviamos el mensaje
    
if (mail($dest"Ha Recibido un Pago desde la Pagina Web"$msg$head)) {
        echo 
"rpta=ok";
    } else {
        echo 
"rpta=error";
    }
}

?>
Este formulario me funciona de maravilla como ya les habia comentado pero he probado varias cosas y no se como hacer para que el nombre y apellido del destinatario se vean en la bandeja de entrada de Gmail. De momento tengo el ($_POST['nombre'] con solamente el nombre y necesito colocarlo con Nombre y Apellido, estos son dos campos de texto diferentes pero necesito que se unan en el ($_POST.

De momento el destinatario me llega asi: Juan

Pero necesito que el destinatario me llegue asi: Juan Garcia

Entonces tebdria que unir las variables 'nombre' y 'apellido' para que aparezcan en el destinatario.
  #2 (permalink)  
Antiguo 16/09/2012, 12:53
Avatar de efenollal  
Fecha de Ingreso: abril-2012
Ubicación: Toa Baja
Mensajes: 63
Antigüedad: 12 años
Puntos: 3
Respuesta: Orden de Variables en Formulario

bueno podrias tratar:
Código PHP:
Ver original
  1. "From: ".$_POST['nombre']."  ".$_POST['apellido']."\r\n"
o tambien
Código PHP:
Ver original
  1. implode(' ', $nombre_del_array);
si es que tienes un campo en la base de datos o array que estes usando llamado 'apellido'.
  #3 (permalink)  
Antiguo 16/09/2012, 12:57
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Orden de Variables en Formulario

Código PHP:
Ver original
  1. $head = "From: ".$_POST['nombre'] . ' ' . $_POST['apellido'] . ' <' . $_POST['email'] .'>'."\r\n";

Asumiendo que $_POST['email'] existe. Si no existe, debería.
__________________
nahueljose.com.ar
  #4 (permalink)  
Antiguo 16/09/2012, 16:59
Avatar de bathory84  
Fecha de Ingreso: junio-2010
Ubicación: Venezuela
Mensajes: 257
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Orden de Variables en Formulario

Cita:
Iniciado por efenollal Ver Mensaje
bueno podrias tratar:
Código PHP:
Ver original
  1. "From: ".$_POST['nombre']."  ".$_POST['apellido']."\r\n"
o tambien
Código PHP:
Ver original
  1. implode(' ', $nombre_del_array);
si es que tienes un campo en la base de datos o array que estes usando llamado 'apellido'.
La primera opcion sirve muy bien, pero en Hotmail. El problema que tengo es con Gmail, me sale "remitente desconocido" en la bandela de entrada, yo necesito que diga el Nombre y Apellido.

Disculpen que no lo haya mencionado antes pero pense que se resolveria de esta manera.
  #5 (permalink)  
Antiguo 16/09/2012, 17:04
Avatar de bathory84  
Fecha de Ingreso: junio-2010
Ubicación: Venezuela
Mensajes: 257
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Orden de Variables en Formulario

El problema con Gmail es cuando se deja un espacio en blanco entre el Nombre y Apellido por eso es que no se ve el remitente, pero si coloco el codigo pegado de esta manera:

Código PHP:
Ver original
  1. "From: ".$_POST['nombre']."".$_POST['apellido']."\r\n"

Entonces si se ve el remitente en la bandeja de entrada pero se esta manera, por ejemplo: JuanGarcia

Y ahora como se deja un espacio enblanco entre el Nombre y el Apellido pero que Gmail reconozca ese remitente?

Última edición por bathory84; 16/09/2012 a las 17:18
  #6 (permalink)  
Antiguo 16/09/2012, 17:41
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Orden de Variables en Formulario

Intenta probar con la solución que te da Naahuel en #3. Seguramente se solucione así. Supongo que Gmail si no pones una dirección de correo, tomará loquesea como email, y como un email no puede tener espacios, entonces sólo muestra la primera parte, osea, el nombre.
__________________
(:
  #7 (permalink)  
Antiguo 16/09/2012, 17:52
Avatar de efenollal  
Fecha de Ingreso: abril-2012
Ubicación: Toa Baja
Mensajes: 63
Antigüedad: 12 años
Puntos: 3
Respuesta: Orden de Variables en Formulario

tambien podrias utilizar el implode que te mencione:
Código PHP:
Ver original
  1. $arreglo = array(
  2.         $_POST['nombre'],
  3.         $_POST['apellido'],
  4.     );
  5. "From:  " . echo implode('  ', $arreglo ); . "r\n\";

puede que de esta manera gmail lo reconozca al estar dentro de un arreglo. si no utiliza un underscore(_) para separarlo.
  #8 (permalink)  
Antiguo 16/09/2012, 18:02
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Orden de Variables en Formulario

Cita:
Iniciado por efenollal Ver Mensaje
tambien podrias utilizar el implode que te mencione:
Código PHP:
Ver original
  1. $arreglo = array(
  2.         $_POST['nombre'],
  3.         $_POST['apellido'],
  4.     );
  5. "From:  " . echo implode('  ', $arreglo ); . "r\n\";

puede que de esta manera gmail lo reconozca al estar dentro de un arreglo. si no utiliza un underscore(_) para separarlo.
El caso es que quiere poner, como ya dijo, el nombre y el apellido espaciado.
__________________
(:
  #9 (permalink)  
Antiguo 16/09/2012, 19:13
Avatar de bathory84  
Fecha de Ingreso: junio-2010
Ubicación: Venezuela
Mensajes: 257
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Orden de Variables en Formulario

Cita:
Iniciado por Naahuel Ver Mensaje
Código PHP:
Ver original
  1. $head = "From: ".$_POST['nombre'] . ' ' . $_POST['apellido'] . ' <' . $_POST['email'] .'>'."\r\n";

Asumiendo que $_POST['email'] existe. Si no existe, debería.
Exactamente este fue el que me funcionó, entonces pude resolver los problemas porque ya no necesito colocar un campo y una varible adicional. Ahora solo utilizo la variable 'nombre' para Nombre y Apellido. Y efectivamente lo de GMAIL se arreglo cuando se colocó la variable del Email. Muchas Gracias a todos!...
  #10 (permalink)  
Antiguo 16/09/2012, 21:23
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Orden de Variables en Formulario

Me alegra haber ayudado :)

Recordá siempre recurrir a la documentación:

Cita:
Receiver, or receivers of the mail.

The formatting of this string must comply with » RFC 2822. Some examples are:

[email protected]
[email protected], [email protected]
User <[email protected]>
User <[email protected]>, Another User <[email protected]>
__________________
nahueljose.com.ar

Etiquetas: formulario, orden, variables
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 20:25.