Foros del Web » Programando para Internet » PHP »

Duda al exportar a excel

Estas en el tema de Duda al exportar a excel en el foro de PHP en Foros del Web. Hola A todos.. Resulta que en el aplicativo que esto desarrollando en php y mysql estoy generando informes exportados a excel, pero me resulto un ...
  #1 (permalink)  
Antiguo 05/09/2009, 10:05
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 14 años, 8 meses
Puntos: 1
Pregunta Duda al exportar a excel

Hola A todos..
Resulta que en el aplicativo que esto desarrollando en php y mysql estoy generando informes exportados a excel, pero me resulto un problemita y no he encontrado informacion al respecto. Este es un ejemplo del codigo del script del reporte.
Código PHP:
<?PHP 
header
('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=Informe_Egresos.xls");
header("Pragma: no-cache");
header("Expires: 0");

include_once(
"../../../../comun/global.php");
include_once(
COMUN_PATH."funciones/funciones.php");
include_once(
COMUN_PATH."include/recibevariables.php");

echo 
"<table border=1>" ;
echo 
"<tr><th>Datos</th></tr>";
echo 
"<tr><td>Dato1</td></tr>";
echo 
"<tr><td>Dato2</td></tr>";
echo 
"<tr><td>Dato3 </td></tr>";
echo 
"</table>"
?>
Si le quito el include a global.php me funciona perfectamente, pero si se la coloco me dice que no se encuentra el destino y no abre nada. Despues de revisar me di cuenta que en el global.php tengo un session_register('meses'); que necesito, y al quitarlo ya me funciona. Entonces la duda es, porque me genera conflicto el session_register('meses'); con el header para exportacion a excel???

Agradezco a quien me pueda resolver la duda.
  #2 (permalink)  
Antiguo 05/09/2009, 14:10
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Duda al exportar a excel

Supongo que te da errores porque ya enviaste encabezados y en global.php tienes session_start();, intenta incluir primero el archivo.

Por otra parte, session_register() es una funcion obsoleta y removida de PHP 6.

Código php:
Ver original
  1. // Esto no es correcto:
  2. $meses = 'Algun valor';
  3.  
  4. // Lo adecuado es esto:
  5. $_SESSION['meses'] = 'Algun valor';
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/09/2009, 07:09
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 14 años, 8 meses
Puntos: 1
De acuerdo Respuesta: Duda al exportar a excel

Gracias Triby, voy a probarlo, y es verdad voy a quitar la funcion session_register para no tener problemas en el futuro.
  #4 (permalink)  
Antiguo 07/09/2009, 07:41
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Duda al exportar a excel

Cita:
Iniciado por Triby Ver Mensaje
Supongo que te da errores porque ya enviaste encabezados y en global.php tienes session_start();, intenta incluir primero el archivo.

Por otra parte, session_register() es una funcion obsoleta y removida de PHP 6.

Código php:
Ver original
  1. // Esto no es correcto:
  2. $meses = 'Algun valor';
  3.  
  4. // Lo adecuado es esto:
  5. $_SESSION['meses'] = 'Algun valor';
Efectivamente en global tengo session_start, probe l que me dijiste pero aun asi no me funcionaq que mas podria ser...

asi lo coloque

Código PHP:
<?PHP  

include_once("../../../../comun/global.php"); 
include_once(
COMUN_PATH."funciones/funciones.php"); 
include_once(
COMUN_PATH."include/recibevariables.php"); 

header('Content-type: application/vnd.ms-excel'); 
header("Content-Disposition: attachment; filename=Informe_Egresos.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

echo 
"<table border=1>" 
echo 
"<tr><th>Datos</th></tr>"
echo 
"<tr><td>Dato1</td></tr>"
echo 
"<tr><td>Dato2</td></tr>"
echo 
"<tr><td>Dato3 </td></tr>"
echo 
"</table>";  
?>
  #5 (permalink)  
Antiguo 07/09/2009, 07:56
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Duda al exportar a excel

Ya encontre la solucion buscando aqui en este foro :). Simplemente coloque

session_start();
header("Cache-control: private");

en global.php y ya me funciona.

Muchas gracias por colaborarme y aqui dejo el link donde explican este error por si alguien lo necesita nuevamente:

forosdelweb.com/f18/convivencia-entre-session_start-header-533159/
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 10:43.