Foros del Web » Programando para Internet » PHP »

¿Como envío en el mensaje de phpmailer variables de session?

Estas en el tema de ¿Como envío en el mensaje de phpmailer variables de session? en el foro de PHP en Foros del Web. Hola con todos, miren estoy haciendo un envío de correo de un carrito de compra, para que al momento de que el cliente realice el ...
  #1 (permalink)  
Antiguo 08/10/2012, 13:18
Avatar de Inmortal666  
Fecha de Ingreso: octubre-2012
Mensajes: 19
Antigüedad: 12 años, 1 mes
Puntos: 0
¿Como envío en el mensaje de phpmailer variables de session?

Hola con todos, miren estoy haciendo un envío de correo de un carrito de compra, para que al momento de que el cliente realice el pago, le llegue a su correo el resumen con lo pedido, sus datos y la forma de pago.

El problema es que no trabajo con bases de datos, todo esta puesto en la web y utilizo variables de session para llevar los valores de una pagina a otra.

He intentado agregar en el mensaje del phpmailer el archivo del resumen, pero lo que me llega al correo son las tablas pero no los valores, todo está en blanco, ¿como puedo hcaer eso, alguien sabe algún método, si no es éste, otro?, saludos
  #2 (permalink)  
Antiguo 08/10/2012, 14:36
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: ¿Como envío en el mensaje de phpmailer variables de session?

para phpmailer es indiferente que la data provenga de un SDBMS o no, al final a él le pasas un string con el cuerpo del mensaje.

algo haces mal, entonces postea el código para ayudarte, no se te olvide colocarlo dentro de un highlight para que lo podamos apreciar bien.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 08/10/2012, 15:02
Avatar de Inmortal666  
Fecha de Ingreso: octubre-2012
Mensajes: 19
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: ¿Como envío en el mensaje de phpmailer variables de session?

Hola maycolalvarez, gracias por tu respuesta, te comento que dandole vueltas he logrado que me envíe el correo con los datos de las variables.

El problema es que yo estaba queriendo meter todo de golpe a una variable local para que lo imprima con el phpmailer, pero como mi c´dogio no solo era html sino que también tenía php, ahi es donde se volvía loco.

He tenido que ir metiendo a la variable solo lo datos más no las operaciones ni los condicionales, etc, y ya me va, pero no se porque no me respeta las modificaciones de las celdas, como el centrar las letras.

El código es algo extenso, pero solo voy a poner la parte de la tabla que no me coge los valores uq ele pongo en las celdas:

Código PHP:
$mensaje .= '
        </td>
    </tr>
    <tr>
        <th colspan ="5" align ="center" style = "border:none">
            <u>RESUMEN DEL PEDIDO SOLICITADO</u><br><br>
        </th>
    </tr>
    <tr>
        <th class = "caja-texto" width = "8%" bgcolor = "#E3E3E3" align = "center">ITEM</th>
        <th class = "caja-texto" width = "35%" bgcolor = "#E3E3E3" align = "center">Nombre Artículo</th>
        <th class = "caja-texto" width = "6%" bgcolor = "#E3E3E3" align = "center">Embolsado Individual</th>
        <th class = "caja-texto" width = "5%" bgcolor = "#E3E3E3" align = "center">Cantidad (und)</th>
        <th class = "caja-texto" width = "10%" bgcolor = "#E3E3E3" align = "center">Precio</th>
    </tr>'

a ver si vez algo que yo no he visto, saludos
  #4 (permalink)  
Antiguo 08/10/2012, 15:17
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 8 meses
Puntos: 52
Respuesta: ¿Como envío en el mensaje de phpmailer variables de session?

Cita:
Iniciado por Inmortal666 Ver Mensaje
Hola maycolalvarez, gracias por tu respuesta, te comento que dandole vueltas he logrado que me envíe el correo con los datos de las variables.

El problema es que yo estaba queriendo meter todo de golpe a una variable local para que lo imprima con el phpmailer, pero como mi c´dogio no solo era html sino que también tenía php, ahi es donde se volvía loco.

He tenido que ir metiendo a la variable solo lo datos más no las operaciones ni los condicionales, etc, y ya me va, pero no se porque no me respeta las modificaciones de las celdas, como el centrar las letras.

El código es algo extenso, pero solo voy a poner la parte de la tabla que no me coge los valores uq ele pongo en las celdas:

Código PHP:
$mensaje .= '
        </td>
    </tr>
    <tr>
        <th colspan ="5" align ="center" style = "border:none">
            <u>RESUMEN DEL PEDIDO SOLICITADO</u><br><br>
        </th>
    </tr>
    <tr>
        <th class = "caja-texto" width = "8%" bgcolor = "#E3E3E3" align = "center">ITEM</th>
        <th class = "caja-texto" width = "35%" bgcolor = "#E3E3E3" align = "center">Nombre Artículo</th>
        <th class = "caja-texto" width = "6%" bgcolor = "#E3E3E3" align = "center">Embolsado Individual</th>
        <th class = "caja-texto" width = "5%" bgcolor = "#E3E3E3" align = "center">Cantidad (und)</th>
        <th class = "caja-texto" width = "10%" bgcolor = "#E3E3E3" align = "center">Precio</th>
    </tr>'

a ver si vez algo que yo no he visto, saludos
Aqui lo unico que estas haciendo es imprimir un tabla HTML y nada mas, no veo donde estes asignando las variables que quieras mostrar, y no importa si combinas PHP con HTML siempre y cuando concatenes bien no habra problema.
__________________
Aprendiendo!!!
  #5 (permalink)  
Antiguo 08/10/2012, 15:40
Avatar de Inmortal666  
Fecha de Ingreso: octubre-2012
Mensajes: 19
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: ¿Como envío en el mensaje de phpmailer variables de session?

Si, es que aqui solo estaba mostrando la tabla html porque por más que le diga que me centre el contenido, no lo hace.

El código como dije arriba es mucho más extenso, pero aqui lo pongo por si acaso, saludos

Código PHP:
<?php
session_start
();


$email $_SESSION['datosfact'][2];

$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: ".$email " <" $email ">\n";
$headers .= "To: ".$email " <" $email ">\n";
$headers .= "Reply-To: " $email "\n";
$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "X-Mailer: Widgets.com Server"

$foto"http://regalosjc.com/images/Logotipo para correos.png";

$mensaje '<center><a href="http://www.regalosjc.com"><img src="'$foto .'" width="300"></a></center><br>';

$mensaje .= "
<style type ='text/css'>

table{
    width:70%;
    
}


th, td{
        border: 1px solid #000;
        border-spacing: 0;
        padding: 0.3em;
}
caption {
   padding: 0.3em;
}


.caja-texto{
font-family: arial;
font-weight: bold;
font-size: 15px;
color: #00265D;

}

</style>

<br>"
;

$mensaje .= "
    <table align='center' >
    <tr>
        <td colspan ='5' style ='border:none' align='center'>
        Hola "
;

$mensaje .= $_SESSION['datosfact'][0];

$mensaje .= ", a continuación te mostramos el resumen total del pedido, así como el método de pago elegido";
$mensaje .= '
        </td>
    </tr>
    <tr>
        <th colspan ="5" align ="center" style = "border:none">
            <u>RESUMEN DEL PEDIDO SOLICITADO</u><br><br>
        </th>
    </tr>
    <tr>
        <th class = "caja-texto" width = "8%" bgcolor = "#E3E3E3" align = "center">ITEM</th>
        <th class = "caja-texto" width = "35%" bgcolor = "#E3E3E3" align = "center">Nombre Artículo</th>
        <th class = "caja-texto" width = "6%" bgcolor = "#E3E3E3" align = "center">Embolsado Individual</th>
        <th class = "caja-texto" width = "5%" bgcolor = "#E3E3E3" align = "center">Cantidad (und)</th>
        <th class = "caja-texto" width = "10%" bgcolor = "#E3E3E3" align = "center">Precio</th>
    </tr>'
;

if(isset(
$_SESSION['debidos']))
    
$debidos $_SESSION['debidos'];
    
if (isset(
$_SESSION['opcion']))
    
$opcion $_SESSION['opcion'];
else
    
$opcion 0;

    
$subtotal 0;

            for(
$i=0$i $_SESSION['id_art']; $i++){
$mensaje .=         '<tr>
                <td align = "center" height="30">'
;
$mensaje .=         sprintf ("%02d"$i 1);
$mensaje .=         '</td>
                    <td>'
;
$mensaje .=                     $_SESSION['nombre'][$i]; 
$mensaje .=         '</td>
                    <td align = "center">'

                        if(
$_SESSION['embolsado'][$i] == 1)
                            
$resp "SI";
                        else
                            
$resp "NO";
$mensaje .=                 $resp;
$mensaje .=         '</td>
                    <td align ="right">'

$mensaje .=             $_SESSION['cantidad'][$i]; 
$mensaje .=         '</td>
                    <td align ="right">'

$mensaje .=                sprintf ("%.2f €"$_SESSION['precio'][$i]); 
$mensaje .=         '</td>
                    </tr>'
;
            }

$mensaje .='
    <tr>
        <td style = "border: 0px">&nbsp;</td>
        <td style = "border: 0px">&nbsp;</td>
        <th class = "caja-texto" colspan = "2" bgcolor = "#E3E3E3" align = "right">Sub-Total:&nbsp; &nbsp;</th>
        <td align = "right">'
;
            
                for(
$i=0$i$_SESSION['id_art']; $i++)
                    
$subtotal += $_SESSION['precio'][$i];
$mensaje .=            sprintf ("%.2f €"$subtotal);
$mensaje .='
        </td>
    </tr>
    <tr>
        <td style = "border: 0px">&nbsp;</td>
        <td style = "border: 0px">&nbsp;</td>
        <th class = "caja-texto" colspan = "2" bgcolor = "#E3E3E3" align = "right">Portes:&nbsp; &nbsp;</th>
        <td align = "right">'
;
        
            if(
$debidos == 1){
$mensaje .=        sprintf ("<font size = '3' color = 'blue'><b>Debidos</b></font>");
                    
$portes 0;
                }
                else{
                    if(
$subtotal >300){
$mensaje .=                sprintf ("<font size = '3' color = 'blue'><b>¡GRATIS!</b></font>");
                        
$portes 0;
                    }
                    elseif(
$subtotal 150 && $subtotal 301){
$mensaje .=                sprintf ($portes 14.95 ." €");}
                    else
$mensaje .=                sprintf ($portes 9.95 ." €");
                }
$mensaje .='                
    </td>
    </tr>
    <tr>
        <td style = "border: 0px">&nbsp;</td>
        <td style = "border: 0px">&nbsp;</td>
        <th class = "caja-texto" colspan = "2" bgcolor = "#E3E3E3" align = "right">IVA 21%:&nbsp; &nbsp;</th>
        <td align = "right">'
;
            
                
$iva = ($subtotal $portes) * 0.21;
$mensaje .=            sprintf ("%.2f €"$iva);
        
$mensaje .='
    </td>
    </tr>
    <tr>
        <td style = "border: 0px">&nbsp;</td>
        <td style = "border: 0px">&nbsp;</td>
        <th class = "caja-texto" colspan = "2" bgcolor = "#E3E3E3" align = "right"  height="30">Total a Pagar:&nbsp; &nbsp;</th>
        <td align = "right">'
;
            
                
$total $iva $subtotal $portes;
                if(
$opcion == 4)
$mensaje .=            sprintf ("<font size ='4'> %.2f € </font>"$_SESSION['contra']); 
                elseif(
$opcion == 3){
$mensaje .=            sprintf ("<font size ='4'> %.2f € </font>"$_SESSION['payp']);}
                else
$mensaje .=            sprintf ("<font size ='4'> %.2f € </font>"$total); 
            
$mensaje .='
        </td>
    </tr>
</table>
<br>
    <table border = "1" align="center" bgcolor = "#E3E3E3">
        <tr>
            <th align = "right" style ="border:none" width="50%">
                <p class = "caja-texto">Agencia de Transporte: &nbsp;&nbsp;</p>
            </th>
            <td style ="border:none">'
;
            
$mensaje .=        sprintf ("<font size ='4'>" .$_SESSION['transporte']. "</font>");
$mensaje .='
        </td>
        </tr>    
    </table>
    <br>
<br>
<!-- Linea divisoria-->
<hr width = "70%" color ="#00265D">'
;


$mensaje .='
    <table align="center">
        <tr>
            <th style = "border:none">
                Datos de Factura:
            </th>
            <th style = "border:none">
                Datos de Envío:
            </th>
        </tr>
        <tr>
            <td width ="50%">'
;
            
                for(
$i=0$i<7$i++)
$mensaje .=            $_SESSION['datosfact'][$i] ."<br>";
$mensaje .='<br>';
$mensaje .='        
        </td>            
            <td>'
;
                if(
$_SESSION['datosenv'][0])
$mensaje .=                $_SESSION['datosenv'][0] ."<br>";
                else
$mensaje .=                $_SESSION['datosfact'][0] ."<br>";
                if(
$_SESSION['datosenv'][1])
$mensaje .=                $_SESSION['datosenv'][1] ."<br>";
                else
$mensaje .=                $_SESSION['datosfact'][1] ."<br>";
                if(
$_SESSION['datosenv'][2])
$mensaje .=                $_SESSION['datosenv'][2] ."<br>";
                else
$mensaje .=                $_SESSION['datosfact'][2] ."<br>";
                if(
$_SESSION['datosenv'][3])
$mensaje .=                $_SESSION['datosenv'][3] ."<br>";
                else
$mensaje .=                $_SESSION['datosfact'][3] ."<br>";
                if(
$_SESSION['datosenv'][4])
$mensaje .=                $_SESSION['datosenv'][4] ."<br>";
                else
$mensaje .=                $_SESSION['datosfact'][4] ."<br>";
                if(
$_SESSION['datosenv'][5])
$mensaje .=                $_SESSION['datosenv'][5] ."<br>";
                else
$mensaje .=                $_SESSION['datosfact'][5] ."<br>";
                if(
$_SESSION['datosenv'][6])
$mensaje .=                $_SESSION['datosenv'][6] ."<br>";
                else
$mensaje .=                $_SESSION['datosfact'][6] ."<br>";
$mensaje .='
        </td>
        </tr>
        <tr>
            <td colspan = "2">
                Observaciones:<br>'
;
$mensaje .=                $_SESSION['datosfact'][7];
$mensaje .='
        </td>
        </tr>
    </table>
    <br>
    <table align = "center">
        <tr>
            <th align="center" bgcolor = "#E3E3E3">'
;
                if(
$_SESSION['opcion'] == 2)
                    
$formapago "Pago por TRANSFERENCIA";
                elseif(
$_SESSION['opcion'] == 4)
                    
$formapago "Pago CONTRAREEMBOLSO";
                elseif(
$_SESSION['opcion'] == 3)
                    
$formapago "Pago por PAYPAL";
                elseif(
$_SESSION['opcion'] == 1)
                    
$formapago "Pago por TARJETA";
$mensaje .=        sprintf("<p class = 'caja-texto'>" .$formapago"</font>");
$mensaje .='                    
            </th>
        </tr>
        </tr>
        <tr>
            <td colspan ="2" style ="border:none" align="center">
                <p class = "caja-texto"><br>Gracias por tu preferencia<br><br><br><a href="http://www.regalosjc.com">www.regalosjc.com<br></a>
            </td>
        </tr>
    </table>'
;        
                
                

$para $email;
$asunto "Pedido solicitado por " .$_SESSION['datosfact'][0]. " desde RegalosJC";



include_once(
"class.phpmailer.php");
include_once(
"class.smtp.php");

$mail = new PHPMailer();

    
$mail->IsSMTP();                           // Usamos el metodo SMTP de la clase PHPMailer
    
$mail->Mailer "smtp";
    
$mail->SMTPAuth   true;                  // habilitado SMTP autentificación
    
$mail->Host       "mail.regalosjc.com"// SMTP server
    
$mail->Port       25;                    // puerto del server SMTP
    
$mail->Username "regalosj";
    
$mail->Password "x608DFt6od";                
    
$mail->From       "[email protected]"//Remitente de Correo    
    
$mail->FromName   "Regalos JC"//Nombre de Remitente de Correo
     
$mail->AddAddress($para); //Destinatario
    
$mail->AddBCC("[email protected]"); //copia oculta del mensaje
    
$mail->Subject $asunto//Asunto del correo
    
$mail->Body $mensaje//Asunto del correo
    
$mail->WordWrap 50;
    
$mail->MsgHTML($mensaje);

    if(
$mail->Send()){
        
$respuesta "El mensaje ha sido enviado correctamente";
              
$valor 1;
    }else{
        
$respuesta "El mensaje no se pudo enviar";
        
$respuesta .= " Error: " .$mail->ErrorInfo;
              
$valor 0;
    }
?>

<script language="javascript">
        alert("Gracias por su preferencia \n Se le ha enviado un e-mail con su pedido");
        location.href ='cerrar_sesiones.php';
</script>

Etiquetas: mensaje, phpmailer, tabla, 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 12:51.