Foros del Web » Programando para Internet » PHP »

Mandar Tablas En Mails

Estas en el tema de Mandar Tablas En Mails en el foro de PHP en Foros del Web. A ver si alguien me puede decir por qué al recibir el mail solo me aparece el contenido de la variable suma. Es decir, la ...
  #1 (permalink)  
Antiguo 21/09/2005, 06:15
 
Fecha de Ingreso: septiembre-2005
Mensajes: 28
Antigüedad: 12 años, 2 meses
Puntos: 0
Mandar Tablas En Mails

A ver si alguien me puede decir por qué al recibir el mail solo me aparece el contenido de la variable suma. Es decir, la tabla donde tengo el pedido no me sale. Es quizás por algun problema de trabajo con las sesiones. Gracias

function manda_carrito(){
$cuerpo="";
$headers_mensaje = "From: [email protected]\r\n" . "Reply-To: [email protected]\r\n" . "Return-path: [email protected]\r\n" . "MIME-Version: 1.0\n" . "Content-type: text/html; charset=iso-8859-1";
$cuerpo = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
'.$suma = 0;
echo '<table border=0 cellpadding="5">
<tr>
<td><b>Código</b></td>
<td><b>Cantidad</b></td>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td><b>Total</b></td>
<td>&nbsp;</td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_id_prod[$i] . "</td>";
echo "<td>" . $this->array_cant_prod[$i] . "</td>";
echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i]*$this->array_cant_prod[$i] . "</td>";
//echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i]*$this->array_cant_prod[$i];
}
}
//muestro el total
echo "<tr><td></td><td></td><td><b>TOTAL:</b></td><td> </td><td><b>$suma</b></td><td>&nbsp;</td></tr>";
//total más IVA
echo "<tr><td></td><td></td><td><b>IVA (7%):</b></td><td></td><td> <b>" . $suma * 1.07 . "</b></td><td>&nbsp;</td></tr>";

echo "<tr><td></td><td></td><td><b>R.E.(7%+1%):</b></td><td></td><td> <b>" . $suma * 1.08 . "</b></td><td>&nbsp;</td></tr>";
echo "</table>"; '
</body>
</html>
';
mail("[email protected]","Nuevo Pedido",$cuerpo,$headers_mensaje);
}
  #2 (permalink)  
Antiguo 21/09/2005, 06:20
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
seria mejor q separes el cuerpo en partes. es decir algo aprecido a esto:
Código:
$cuerpo="<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">";
$cuerpo.="<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body>";
y asi continuamente...
asi podras localizar mejor el error o si algun trozo de tabla no se vee bien.
yo lo tengo asi y la verdad q ante cualquier cosa se realiza mejor cualquier cambio.
una cosa más,vigila las comillas dobles al incluirlo dentro la variable cuerpo.

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 21/09/2005, 06:33
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
te lo dejo aqui posteado... espero q te sirva...
no ser si es la manera mas correcta de hacerlo pero almenos a mi me keda muy claro q es lo q kiero dentro del cuerpo del mensaje y q es lo q no...
espero q te sirva...
Código PHP:
$cuerpo="";
$cuerpo "<!DOCTYPE HTML PUBLIC-//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd>";
$cuerpo.= "<html><head><meta http-equiv=Content-Type content=text/html; charset=iso-8859-1></head><body>"
$cuerpo.= "<table border=0 cellpadding=5>tr>";
$cuerpo.= "<td><b>Código</b></td>";
$cuerpo.= "<td><b>Cantidad</b></td>";
$cuerpo.= "<td><b>Nombre producto</b></td>";
$cuerpo.= "<td><b>Precio</b></td>";
$cuerpo.= "<td><b>Total</b></td>";
$cuerpo.= "<td>&nbsp;</td>";
$cuerpo.= "</tr>";
$suma 0;
for (
$i=0;$i<$this->num_productos;$i++){
if(
$this->array_id_prod[$i]!=0){
$cuerpo.="<tr>";
$cuerpo.="<td>" $this->array_id_prod[$i] . "</td>";
$cuerpo.="<td>" $this->array_cant_prod[$i] . "</td>";
$cuerpo.="<td>" $this->array_nombre_prod[$i] . "</td>";
$cuerpo.="<td>" $this->array_precio_prod[$i] . "</td>";
$cuerpo.="<td>" $this->array_precio_prod[$i]*$this->array_cant_prod[$i] . "</td>";
/*echo <td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>;*/
$cuerpo.="</tr>";
$suma += $this->array_precio_prod[$i]*$this->array_cant_prod[$i];
}
}
//muestro el total
$cuerpo.="<tr><td></td><td></td><td><b>TOTAL:</b></td><td> </td><td><b>".$suma."</b></td><td>&nbsp;</td></tr>";
//total más IVA
$cuerpo.="<tr><td></td><td></td><td><b>IVA (7%):</b></td><td></td><td> <b>" $suma 1.07 "</b></td><td>&nbsp;</td></tr>";

$cuerpo.="<tr><td></td><td></td><td><b>R.E.(7%+1%):</b></td><td></td><td> <b>" $suma 1.08 "</b></td><td>&nbsp;</td></tr>";
$cuerpo.="</table>"
$cuerpo.="</body>";
$cuerpo.="</html>"
Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #4 (permalink)  
Antiguo 21/09/2005, 06:59
 
Fecha de Ingreso: septiembre-2005
Mensajes: 28
Antigüedad: 12 años, 2 meses
Puntos: 0
Gracias Sergi

Por fin me va con tu solucion muchas gracias tio. Oye otro problemilla aunque creo que no he tocado nada me sale

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\wamp\www\WEB\carrito_php\ver_carrito.php:2) in c:\wamp\www\WEB\autentificator\aut_verifica.inc.ph p on line 150

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\wamp\www\WEB\carrito_php\ver_carrito.php:2) in c:\wamp\www\WEB\autentificator\aut_verifica.inc.ph p on line 150

a qué se debe? me imagino q por el lio de sesiones y usuarios pero ni idea. Espero no ser pesado. GRACIAS.
  #5 (permalink)  
Antiguo 21/09/2005, 09:00
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
Los headers se tienen q poner antes de generar html, sino se devuelve ese error.
si buscas x aki se hablado sobre este tema.

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 09:37.