Foros del Web » Programando para Internet » PHP »

Enviar array en un email

Estas en el tema de Enviar array en un email en el foro de PHP en Foros del Web. Hola, estoy intentando enviar el contenido de un array por email, no tengo mucha idea de como hacer para que se envie. He intentado haciendo ...
  #1 (permalink)  
Antiguo 01/08/2006, 10:57
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 18 años, 4 meses
Puntos: 0
Enviar array en un email

Hola,
estoy intentando enviar el contenido de un array por email, no tengo mucha idea de como hacer para que se envie.
He intentado haciendo una variable que recoja el contenido del array, esta la paso con un $_POST al email para enviar pero... no se envia.


Un saludo y mil gracias ;)
  #2 (permalink)  
Antiguo 01/08/2006, 11:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Será mejor que pongas el código que estás probando.

Pero .. en general en un e-mail debes componer tu "cuerpo" del mensaje .. y para eso la función mail() acepta como parámetro para el "body" (mensaje, contenido) una simple $variable (string) ..

Por ejemplo .. podrías "serializar" el array en un string cualquiera: separado por comas por ejemplo? .. o dandole otro formato (si explicas mejor que "array" tienes y que quieres hacer en ese e-mail sería lo ideal)

Código PHP:
$array=array("blabla","nose","blabla otro");

$array_serializada=explode(',',$array);
$mensaje="Los datos del array son: \n".$array_serializada."\nFIN";
mail($para,$asunto,$mensaje,$cabeceras); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 02/08/2006, 01:57
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 18 años, 4 meses
Puntos: 0
la funcion que imprime el carrito

Código PHP:
function imprime_carrito(){
        
$suma 0;
        echo 
'<table  width="362" border=1 bordercolor="#000000" cellspacing="0" cellpadding="2" class=\"txt\">
              <tr>
                <td align="center" class="txtprensa"><b> Referencia </b></td>
                <td align="center" class="txtprensa"><b> Descripcion </b></td>
                <td align="center" class="txtprensa"> &nbsp; </td>
              </tr>'
;
        for (
$i=0;$i<$this->num_productos;$i++){
            if(
$this->array_id_prod[$i]!=0){
                echo 
'<tr>';
                echo 
"<td class=\"txt\" align=\"center\">" $this->array_ref[$i] . "</td>";
                echo 
"<td class=\"txt\">" $this->array_nombre_prod[$i] . "</td>";
                echo 
"<td class=\"txt\" align=\"center\"><a class=\"txt\" href='del_prodimag.php?linea=$i'>Eliminar</a></td>";
                echo 
'</tr>';
                }
        }
        echo 
"</table>";
        echo 
"<a class=\"txt\" href=\"del_prodimag.php?ds=1\">Vaciar</a>";
    } 
la cosa seria enviarla por email, no uso la function mail () pq esta deshabilitada en mi server, uso phpmailer.
  #4 (permalink)  
Antiguo 02/08/2006, 02:05
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 20 años
Puntos: 1
Código PHP:
$array=array("blabla","nose","blabla otro"); 

$array_serializada=explode(',',$array); 
$mensaje="Los datos del array son: \n".$array_serializada."\nFIN"
mail($para,$asunto,$mensaje,$cabeceras); 
a no ser que me equivoque el explode es solo para cadenas.

con hacer esto bastaría

Código PHP:
$array=array("blabla","nose","blabla otro"); 

$mensaje="Los datos del array son: <br>";
for (
$i=0;$i<count($array);$i++)
{
$mensaje.=$i.") ".$array[$i]."<br>";}
$mensaje.="FIN"
mail($para,$asunto,$mensaje,$cabeceras); 
en cuanto a lo del phpmailer no se como va la cosa.. pero en $mensaje ya tendrías los datos de ese array, para mandarlo como quieras, o mostrarlo por pantalla.. etc..
__________________
ALOZORRO v5.0 (ahora en .es)
  #5 (permalink)  
Antiguo 02/08/2006, 02:11
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 20 años
Puntos: 1
En lugar de hacer un echo, que lo que hace es mostrartelo por pantalla, vete guardandolo en una variable como el ejemplo que se puso mas atras, luego ya lo puedes mostrar y al final devuelves esa variable con return
Código PHP:
function imprime_carrito(){ 
         
$suma 0
        
$cadena"<table><tr> 
                <td><b> Referencia </b></td> 
                <td><b> Descripcion </b></td> 
                <td> &nbsp; </td> </tr>"

        for (
$i=0;$i<$this->num_productos;$i++){ 
            if(
$this->array_id_prod[$i]!=0){ 
                
$cadena.="<tr> 
                <td>" 
$this->array_ref[$i] . "</td><td >" $this->array_nombre_prod[$i] . "</td><td ><a class='txt' href='del_prodimag.php?linea=$i'>Eliminar</a></td></tr>"
                } 
        } 
        
$cadena.= "</table><a class='txt' href='del_prodimag.php?ds=1'>Vaciar</a>"
    }  
// aqui puedes mostrar la cadena
echo $cadena;

//ahora devolvemos la cadena para que puedas mandarla en un mail

return $cadena
modifiqué algo tu codigo (le quité todos los estilos simplemente porque yo en lugar de \" prefiero usar ' (comilla simple) y no era plan de cambiarlo en todo los lados jaja..
por lo demas algunos errores en comillas simples y dobles que te modifique tambien..

pruebalo a ver si te vale.
__________________
ALOZORRO v5.0 (ahora en .es)
  #6 (permalink)  
Antiguo 02/08/2006, 03:45
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 18 años, 4 meses
Puntos: 0
De acuerdo Gracias

Muchas gracias ^^ así si funciona.
Por lo de los styles no problem es un minuto.
Perdonad si os molesto hoy un poco es que tengo 3 dudillas más sobre la web que estoy acabando.


Saludos,
n3m0
  #7 (permalink)  
Antiguo 02/08/2006, 04:13
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 20 años
Puntos: 1
a mandar

(eh.. pero no mucho... jajaja)
__________________
ALOZORRO v5.0 (ahora en .es)
  #8 (permalink)  
Antiguo 02/08/2006, 04:25
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 18 años, 4 meses
Puntos: 0
Una pregunta el return para que lo utilizas despues del echo?

Merci

Última edición por n3m0; 02/08/2006 a las 04:30
  #9 (permalink)  
Antiguo 02/08/2006, 05:02
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 20 años
Puntos: 1
es para devolver esa $cadena

tu cuando llames a la funcion haces esto:

$texto = imprime_carrito();

y en $texto ya tendrias ese valor que mostraste por pantalla
__________________
ALOZORRO v5.0 (ahora en .es)
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 21:36.