Foros del Web » Programando para Internet » PHP »

Mostrar contenido de un array al enviar un mail

Estas en el tema de Mostrar contenido de un array al enviar un mail en el foro de PHP en Foros del Web. Buenas tardes, mi duda es la siguiente, la verdad es que estoy hecho un lio tremendo. Yo tengo en mi web un carrito de la ...
  #1 (permalink)  
Antiguo 05/10/2010, 09:46
 
Fecha de Ingreso: junio-2009
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 1
Mostrar contenido de un array al enviar un mail

Buenas tardes, mi duda es la siguiente, la verdad es que estoy hecho un lio tremendo.

Yo tengo en mi web un carrito de la compra que funciona con sesiones de PHP. Al darle a realizar compra te manda a un formulario para que rellenes y este a su vez envía todos los datos mediante la clase Mail.

El problema es que logro enviar el email, con todos losdatos, excepto el nombre de los productos que compra, ya que estos estan almacenados en un array de sesion..

Soy capaz de imprimir mediante un "for" todo el contenido del array en mi página web:

Código PHP:
function muestra_variables(){
        for (
$i=0;$i<$this->num_productos;$i++){if($this->array_id_prod[$i]!=0) echo $this->array_nombre_prod[$i];}
    } 
Sin embargo, si lo meto dentro de el contenido del email, este no se escribe luego en el mail recibido al igual que lo hace en el html de cualquier página.

La forma en la que tengo estructurado el mail es esta:

Nombres de los libros: " . $_SESSION["ocarrito"]->muestra_variables() . "\n

La cosa es, que hago mal? hay alguna forma de meter el conido del array en una variable separado por comas o algo asi?

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 05/10/2010, 10:12
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Mostrar contenido de un array al enviar un mail

Cita:
Iniciado por olatio Ver Mensaje
Buenas tardes, mi duda es la siguiente, la verdad es que estoy hecho un lio tremendo.

Yo tengo en mi web un carrito de la compra que funciona con sesiones de PHP. Al darle a realizar compra te manda a un formulario para que rellenes y este a su vez envía todos los datos mediante la clase Mail.

El problema es que logro enviar el email, con todos losdatos, excepto el nombre de los productos que compra, ya que estos estan almacenados en un array de sesion..

Soy capaz de imprimir mediante un "for" todo el contenido del array en mi página web:

Código PHP:
function muestra_variables(){
        for (
$i=0;$i<$this->num_productos;$i++){if($this->array_id_prod[$i]!=0) echo $this->array_nombre_prod[$i];}
    } 
Sin embargo, si lo meto dentro de el contenido del email, este no se escribe luego en el mail recibido al igual que lo hace en el html de cualquier página.

La forma en la que tengo estructurado el mail es esta:

Nombres de los libros: " . $_SESSION["ocarrito"]->muestra_variables() . "\n

La cosa es, que hago mal? hay alguna forma de meter el conido del array en una variable separado por comas o algo asi?

Gracias por vuestra ayuda.
uhmm, intenta retornar un valor desde la función (usando return $val por ej)
si persiste, asigna el return a la variable de sesión así $_SESSION['ocarrito'] = muestra_variables()

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 05/10/2010, 10:16
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 16 años, 1 mes
Puntos: 12
Respuesta: Mostrar contenido de un array al enviar un mail

Código PHP:
$cadena="";
for (
$i=0;$i<$this->num_productos;$i++)
  {
    
$cadena=$cadena.",".$this->array_nombre_prod[$i];
  } 
Salu2
__________________
No hay mail que por internet no venga
  #4 (permalink)  
Antiguo 05/10/2010, 10:57
 
Fecha de Ingreso: junio-2009
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Mostrar contenido de un array al enviar un mail

Cita:
Iniciado por cosmo_ Ver Mensaje
Código PHP:
$cadena="";
for (
$i=0;$i<$this->num_productos;$i++)
  {
    
$cadena=$cadena.",".$this->array_nombre_prod[$i];
  } 
Salu2
Vale, ahora tengo por un lado esta funcion:

Código PHP:
    function muestra_variables($cadena){
        
$cadena="";
        for (
$i=0;$i<$this->num_productos;$i++){        
        
$cadena=$cadena.",".$this->array_nombre_prod[$i]; 
        return 
$cadena;
        }
    } 
y por el otro lado, donde quiero imprimirlo esta esto:

Código PHP:
        <?  
        $cad
="";
        
$_SESSION["ocarrito"]->muestra_variables($cad);
        echo 
$cad;
            
    
?>

No me funciona, que he hecho mal :S:S:S
  #5 (permalink)  
Antiguo 05/10/2010, 11:07
 
Fecha de Ingreso: junio-2009
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Mostrar contenido de un array al enviar un mail

Olvidad el anterior post, ya he hecho que funcione a medias, ha funcionado pero no como debería.

Por un lado, el código de la sesion.php es:

Código PHP:
    function muestra_variables(){
        
$cadena="";
        for (
$i=0;$i<$this->num_productos;$i++){        
        
$cadena=$cadena.",".$this->array_nombre_prod[$i]; 
        return 
$cadena;
        } 
Y en la página en la que imprimo es:

Código PHP:
        <?  
            $cad 
$_SESSION["ocarrito"]->muestra_variables();
            echo 
"la cadena es: $cad";            
    
?>
Sin embargo, me muestra lo siguiente:

la cadena es: ,Los caminos de la Salud

Es incorrecto, tendría que mostrar otros libros que estan en el array y que si se muestran en la tabla del carrito de la compra.

Consejos?
  #6 (permalink)  
Antiguo 05/10/2010, 11:15
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Mostrar contenido de un array al enviar un mail

Cita:
Iniciado por olatio Ver Mensaje
Olvidad el anterior post, ya he hecho que funcione a medias, ha funcionado pero no como debería.

Por un lado, el código de la sesion.php es:

Código PHP:
    function muestra_variables(){
        
$cadena="";
        for (
$i=0;$i<$this->num_productos;$i++){        
        
$cadena=$cadena.",".$this->array_nombre_prod[$i]; 
        return 
$cadena;
        } 
Y en la página en la que imprimo es:

Código PHP:
        <?  
            $cad 
$_SESSION["ocarrito"]->muestra_variables();
            echo 
"la cadena es: $cad";            
    
?>
Sin embargo, me muestra lo siguiente:

la cadena es: ,Los caminos de la Salud

Es incorrecto, tendría que mostrar otros libros que estan en el array y que si se muestran en la tabla del carrito de la compra.

Consejos?
concatenar de este modo

$cadena .= ",".$this->array_nombre_prod[$i];
cerrar la llave del for (si es del for, antes del return) o de function
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 05/10/2010, 11:21
 
Fecha de Ingreso: junio-2009
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Mostrar contenido de un array al enviar un mail

mortiprogramador te quiero tio. De verdad te debo una. Sé que para tí esto es coser y cantar pero yo llevo un dia entero con esto...

GRACIAAAAAAAAASSSSS!!
  #8 (permalink)  
Antiguo 05/10/2010, 11:22
 
Fecha de Ingreso: junio-2009
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Mostrar contenido de un array al enviar un mail

Ya para terminar de dar la coña. ¿Alguna forma de eliminar la primera coma?
  #9 (permalink)  
Antiguo 05/10/2010, 12:27
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Mostrar contenido de un array al enviar un mail

Cita:
Iniciado por olatio Ver Mensaje
Ya para terminar de dar la coña. ¿Alguna forma de eliminar la primera coma?
haciendo un substring
por ej

Código PHP:
$cad ',ejemplo=valor,otro=valor';
$rest substr($cad1strlen($cad)); 
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: contenido, enviar, mail
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 22:36.