Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/12/2014, 06:25
Avatar de AngelMarine
AngelMarine
 
Fecha de Ingreso: enero-2014
Ubicación: Madrid
Mensajes: 79
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Crear saltos de línea solo si seleccionan determinados checkbox

El siguiente script de PHP funciona correctamente salvo por un pequeño detalle, el mail llega pero todas las variables aparecen pegadas unas a otras (al hacerlo así obviamente $XX . $XX) salvo cuando pongo \r\n, ahí si se da un salto de línea, pero no es la idea, ya que si a todas pongo \r\n ($XX . \r\n . $XX) aparecerán todos los saltos de línea aún cuando la(s) variable(s) de los lados al ser checkbox puedan no estar seleccionadas, entonces aparecería algo como:

variable 1


::: demasiado espacio aquí, porque las variables 2, 3 y 4 en este ejemplo no fueron seleccionadas pero los saltos de línea siguen apareciendo :::


variable 5
variable 6
etc...


Lo ideal sería así:

variable 1
variable 5
variable 6
etc...

aquí ya no aparecerían saltos de línea después de la variable 1 aún cuando no estuvieran definidas las variables 2, 3 y 4. Esto es un ejemplo.

¿Qué podría hacer para que los saltos de línea estén asociados a si aparece determinada variable?

Este es mi código:

<?php
error_reporting( E_ALL & ~( E_NOTICE | E_STRICT | E_DEPRECATED ) );
require_once "Mail.php";

if( empty($_POST["dsgn"]) ) {}
else { $dsgn = 'DSGN'; }
if( empty($_POST["dvlp"]) ) {}
else { $dvlp = 'DVLP'; }
if( empty($_POST["mktg"]) ) {}
else { $mktg = 'MKTG'; }
if( empty($_POST["brng"]) ) {}
else { $brng = 'BRNG'; }
if( empty($_POST["strgs"]) ) {}
else { $strgs = 'STRGS'; }
if( empty($_POST["othr"]) ) {}
else { $othr = 'OTHR'; }

if( empty($_POST["basics"]) ) {}
else { $basics = 'Plan Basic'; }
if( empty($_POST["standards"]) ) {}
else { $standards = 'Plan Standard'; }

if( empty($_POST["one"]) ) {}
else { $one = 'De $$$ a $$$'; }
if( empty($_POST["two"]) ) {}
else { $two = 'Entre $$$ y $$$'; }
if( empty($_POST["three"]) ) {}
else { $three = 'Menos de $$$'; }
if( empty($_POST["four"]) ) {}
else { $four = 'Entre $$$ y $$$'; }
if( empty($_POST["five"]) ) {}
else { $five = 'Más de $$$'; }
if( empty($_POST["six"]) ) {}
else { $six = 'Más de $$$'; }

$details = $_POST["detalles"];
$name = $_POST["nombre"];
$email = $_POST["email"];
$mobile = $_POST["movil"];

$to = '[email protected]';
$from = '[email protected]';
$host = 'smtp.dominio.com';
$username = '[email protected]';
$password = 'XXXXXXXX';
$subject = 'Formulario';
$body = $dsgn . $dvlp . $mktg . $brng . $strgs . $othr . "\r\n" . $one . $two . $three . $four . $five . $six . "\r\n" . $basics . $standards . "\r\n" . $details . $name . $email . $mobile;

$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
echo("" . $mail->getMessage() . "");
} else {
header('Location: thanks.html');
}

?>

Gracias a todos de antemano.
Saludos.