Foros del Web » Programando para Internet » PHP »

problemas con el echo

Estas en el tema de problemas con el echo en el foro de PHP en Foros del Web. buenas tengo un codigo para comprimir y descargar, que si funciona, sin embargo me marca un error, el cual es el siguiente. Cita: Warning: Cannot ...
  #1 (permalink)  
Antiguo 23/09/2009, 09:55
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 15 años, 7 meses
Puntos: 2
Pregunta problemas con el echo

buenas tengo un codigo para comprimir y descargar, que si funciona, sin embargo me marca un error, el cual es el siguiente.
Cita:
Warning: Cannot modify header information - headers already sent by (output started at C:\Servidores\www\Nsil\ejemplo.php:25) in C:\Servidores\www\Nsil\ejemplo.php on line 27

Warning: Cannot modify header information - headers already sent by (output started at C:\Servidores\www\Nsil\ejemplo.php:25) in C:\Servidores\www\Nsil\ejemplo.php on line 28
sin embargo ya detecte el problema es una variable que imprimo por medio del echo, la cual tiene contenido para imoprir los archivos a comprimir, nose si hara alguna otra manera de imprimir esto, les dejo el codigo para ver si me pueden ayudar,
Código PHP:

<?php

include("dlls/asegurar.php");
    include(
"dlls/conecta.php");
    
/*foreach($_POST as $campo => $value)
    {
        echo 'nombre de campo'.$campo."valor_".$value;
    }*/
    
if(!isset($_GET["p"])) $restringido=""
    if(
$_GET["p"]==" PUBLICO"$restringido=" and restringido = 'SI'"; else $restringido='';
                
//Obtener el listado del semáforo
                //print_r($fecha);
                
$sql "SELECT ReporteId, Orden, NomReporte, PerioId, concat(u.Nombre,' ',u.Paterno,' ',u.Materno) as Nombre FROM reporte r, (SELECT usuarioid, Nombre,Paterno,Materno FROM usuario) AS u 
                WHERE r.usuarioid = u.usuarioid "
.$restringido." ORDER BY Orden";
                
$rs mysql_query($sql$conecta) or die("Error al extraer el listado de usuario".mysql_error());
                while(
$fila=mysql_fetch_array($rs))
                {
                    
$despliegue .= '$zipTest->add_file("archivos/'.$fila["ReporteId"].'.pdf ","'.$fila["NomReporte"].'.pdf")';
                }
                
mysql_free_result($rs);
                
mysql_close();
require 
"libreria_zipfile.php"// Get the zipfile class
$zipTest = new zipfile();
//$zipTest->add_dir("imagenes_dictamen/");
echo $despliegue/// aqui radica el problema si lo quito si funciona pero que comprimo sin el XDXD
// Return Zip File to Browser
Header("Content-type: application/octet-stream");
Header("Content-disposition: attachment; filename=archivos_descargados_cliente.zip");
echo 
$zipTest->file();


?>
__________________
La ignorancia es una bendición o un privilegio, yo lo siento programadores
  #2 (permalink)  
Antiguo 23/09/2009, 09:58
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: problemas con el echo

No puedes imprimir nada antes de los header.
intenta este codigo.

Código PHP:
Ver original
  1. <?php
  2. include("dlls/asegurar.php");
  3. include("dlls/conecta.php");
  4.     /*foreach($_POST as $campo => $value)
  5.     {
  6.         echo 'nombre de campo'.$campo."valor_".$value;
  7.     }*/
  8.     if(!isset($_GET["p"])) $restringido="";  
  9.     if($_GET["p"]==" PUBLICO") $restringido=" and restringido = 'SI'"; else $restringido='';
  10.                 //Obtener el listado del semáforo
  11.                 //print_r($fecha);
  12.                 $sql = "SELECT ReporteId, Orden, NomReporte, PerioId, concat(u.Nombre,' ',u.Paterno,' ',u.Materno) as Nombre FROM reporte r, (SELECT usuarioid, Nombre,Paterno,Materno FROM usuario) AS u  
  13.                WHERE r.usuarioid = u.usuarioid ".$restringido." ORDER BY Orden";
  14.                 $rs = mysql_query($sql, $conecta) or die("Error al extraer el listado de usuario".mysql_error());
  15.                 while($fila=mysql_fetch_array($rs))
  16.                 {
  17.                     $despliegue .= '$zipTest->add_file("archivos/'.$fila["ReporteId"].'.pdf ","'.$fila["NomReporte"].'.pdf")';
  18.                 }
  19.                 mysql_free_result($rs);
  20.                 mysql_close();
  21. require "libreria_zipfile.php"; // Get the zipfile class
  22. $zipTest = new zipfile();
  23. //$zipTest->add_dir("imagenes_dictamen/");
  24. echo $despliegue; /// aqui radica el problema si lo quito si funciona pero que comprimo sin el XDXD
  25. // Return Zip File to Browser
  26. Header("Content-type: application/octet-stream");
  27. Header("Content-disposition: attachment; filename=archivos_descargados_cliente.zip");
  28. echo $zipTest->file();
  29.  
  30. ?>
  #3 (permalink)  
Antiguo 23/09/2009, 10:09
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 15 años, 7 meses
Puntos: 2
oko, gracias, si funciona pero el archivo zip que genera es vacio ademas marca un error, el archivo, supongo, que es acausa de que no encuentra nada en la variable.

al final quedo asi,

Cita:
<?php
include("dlls/asegurar.php");
include("dlls/conecta.php");
require "libreria_zipfile.php"; // Get the zipfile class
/*foreach($_POST as $campo => $value)
{
echo 'nombre de campo'.$campo."valor_".$value;
}*/
if(!isset($_GET["p"])) $restringido="";
if($_GET["p"]==" PUBLICO") $restringido=" and restringido = 'SI'"; else $restringido='';
//Obtener el listado del semáforo
//print_r($fecha);
$sql = "SELECT ReporteId, Orden, NomReporte, PerioId, concat(u.Nombre,' ',u.Paterno,' ',u.Materno) as Nombre FROM reporte r, (SELECT usuarioid, Nombre,Paterno,Materno FROM usuario) AS u
WHERE r.usuarioid = u.usuarioid ".$restringido." ORDER BY Orden";
//echo $sql."<br />";
$rs = mysql_query($sql, $conecta) or die("Error al extraer el listado de usuario".mysql_error());
$zipTest = new zipfile();
//$zipTest->open('archivos_descargados_cliente.zip');
while($fila=mysql_fetch_array($rs))
{
$zipTest->add_file('archivos/'.$fila["ReporteId"].'.pdf',''.$fila["NomReporte"].'.pdf');
}
mysql_free_result($rs);
mysql_close();


//$zipTest->add_dir("imagenes_dictamen/");
//echo $despliegue;

// Return Zip File to Browser
Header("Content-type: application/octet-stream");
Header("Content-disposition: attachment; filename=archivos_descargados_cliente.zip");
echo $zipTest->file();
//$filename = "archivos_guardados_servidor.zip";
//$fd = fopen ($filename, "wb");
//$out = fwrite ($fd, $zipTest -> file());
//fclose ($fd);
//echo "Click para <a href='archivos_guardados_servidor.zip'> DESCARGAR</a> archivo comprimido.";
?>
__________________
La ignorancia es una bendición o un privilegio, yo lo siento programadores

Última edición por GatorV; 23/09/2009 a las 15:45
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 20:53.