Programación Web y Scripting > PHP
Error Header("content-disposition: Attachment
(1/1)
javier3:
Tengo Problemas con el Uso del
header("Content-disposition: attachment; filename=\"2109".$mes.$ano_corto.".txt\""); parece que todo esta bien, pero no me graba nada solo en blanco, o si no me graba todo el codigo html de la pagina alguien me puede decir como hago esto????,
la verdad no se utilizar muy bien esto de guardar en un archivo de texto los valores de una consulta, pero lo necesito urgente si alguien me puede ayudar donde estami error le agradeceria infinitamente, es de vida o muerte para mi sistema,
--- Código: Text --- //Aqui obtengo los datos que necesito guardar en mi archivo de texto$query_rs_scoplaen = "SELECT so.idccodso AS idccodso, so.scrccopl, so.scrcndni, (so.scrcapep || ' ' || so.scrcapem || ', ' || so.scrcnomb) as nombres, (so.scrcapep || ' ' || so.scrcapem || ' ' || so.scrcnomb) AS socio, (SELECT scrnacti FROM scrtipso WHERE idectiso=so.scrctiso) AS scrnacti, pl.sccoapor, pl.sccopram, pl.sccoprin, pl.sccocred, (pl.sccomocr+pl.sccoprmo) AS sccomora, pl.sccofose, pl.sccoacti, pl.sccomult, pl.sccomant, to_char(pl.sccdfech,'MM') AS mes, to_char(pl.sccdfech,'YY') AS ano_corto, to_char(pl.sccdfech,'YYYY') AS ano_largo, (pl.sccoapor + pl.sccopram + pl.sccoprin + pl.sccocred + pl.sccomocr + pl.sccoprmo + pl.sccofose + pl.sccoacti + pl.sccomult + pl.sccomant) AS sccotota FROM scrsocio so INNER JOIN scoplaen_corregido pl ON pl.idccodso=so.idccodso INNER JOIN saudepen de ON pl.idccodpro=de.sauccode WHERE so.scrccoso NOT IN ('00034') AND de.idcuniej = '".$idcuniej."' AND date_part('MONTH',pl.sccdfech) = ".$mes." AND date_part('YEAR',pl.sccdfech) = '".$anno."' ORDER BY so.scrcapep, so.scrcapem, so.scrcnomb"; $rs_scoplaen = $cn->SelectLimit($query_rs_scoplaen); while (!$rs_scoplaen->EOF){ $monto_total[]=$rs_scoplaen->Fields("sccotota"); $scrccopl[]=$rs_scoplaen->Fields("scrccopl"); $scrcndni[]=$rs_scoplaen->Fields("scrcndni"); $scrnacti[]=$rs_scoplaen->Fields("scrnacti"); $socio[]=$rs_scoplaen->Fields("socio"); $mes = $rs_scoplaen->Fields("mes"); $ano_corto = $rs_scoplaen->Fields("ano_corto"); $ano_largo = $rs_scoplaen->Fields("ano_largo"); $rs_scoplaen->MoveNext(); } $rs_scoplaen->MoveFirst();//Ubicamos el Cursor en el Primer Registro //Este es el Bloque para cargar los datos al archivo de texto, y claro esto se ejecuta con un boton que llama mediante una funcion javascript al submit() de mi formulario. if ($consultar == "grabar"){//Obtenemos el Codigo de Ministerio$sql_minis = "SELECT idcminis FROM sauuniej WHERE idcuniej = '".$idcuniej."'";$rs_minis = $cn->SelectLimit($sql_minis);$idcminis = $rs_minis->Fields("idcminis"); //Proceso de Generar el Archivo de Texto $sql = "SELECT * FROM scoarche WHERE idcminis = '".$idcminis."' ORDER BY sconnoca ASC "; $rs_scoarche = $cn->SelectLimit($sql) or die($cn->ErrorMsg()); $scotipa = $rs_scoarche->Fields("scotipa"); if($scotipa == "TXT") { header("Content-disposition: attachment; filename=\"2109".$mes.$ano_corto.".txt\""); } else { header("Content-disposition: attachment; filename=\"2109".$mes.$ano_corto.".dbf\""); $i = 0; $rs_scoarche->MoveFirst(); while(!$rs_scoarche->EOF) { $tabla_def[$i][0] = $rs_scoarche->Fields("scocnom"); $tabla_def[$i][1] = "C"; $tabla_def[$i][2] = $rs_scoarche->Fields("scontama"); $i++; $rs_scoarche->MoveNext(); } $dbf_arch = get_nombre_arch_dbf(); $dbf_db_ok = false; if(dbase_create("temp/".$dbf_arch, $tabla_def)) { $dbf_db = dbase_open("temp/".$dbf_arch, 2); if($dbf_db !== false) { $dbf_db_ok = true; } } } header("Content-type: application/octetstream"); header("Pragma: no-cache"); header("Expires: 0"); for($i = 0; $i <= ($item - 1); $i++) { if($monto_total[$i] > 0) { $j = 1; $rs_scoarche->MoveFirst(); while(!$rs_scoarche->EOF) { $scocvalo = $rs_scoarche->Fields("scocvalo"); if(substr($scocvalo, 0, 1) != "'") { switch($scocvalo) { case "NP": $valores[$j] = $scrccopl[$i]; break; case "NCS": $valores[$j] = $socio[$i]; break; case "DNI": $valores[$j] = $scrcndni[$i]; break; case "TS": if($scrnacti[$i] == "A") { $valores[$j] = "1"; } else { $valores[$j] = "5"; } break; case "MD": formatear_monto($monto_total[$i]); $valores[$j] = $monto_total[$i]; break; case "AL": $valores[$j] = $ano_largo; break; case "AC": $valores[$j] = $ano_corto; break; case "MC": $valores[$j] = $mes; break; } } else { $valores[$j] = $scocvalo; } $j++; $rs_scoarche->MoveNext(); } if($scotipa == "TXT") { $linea = get_linea_arch_txt_env($idcminis, $valores, &$rs_scoarche); echo $linea; } else { $fila = get_fila_arch_dbf_env($idcminis, $valores, &$rs_scoarche); if($dbf_db_ok) { dbase_add_record($dbf_db, $fila); } } } } if($dbf_db_ok) { dbase_close($dbf_db); $arch = fopen("temp/".$dbf_arch, "r"); $arch_cont = fread($arch, filesize("temp/".$dbf_arch)); fclose($arch); echo $arch_cont; //chmod("temp/".$dbf_arch, 0777); //unlink("temp/".$dbf_arch); } die();} no se si no me carga nada por la ubicacion en la que se encuentra mi script en la pagina, e probado poniendolo dentro del <body> pero nada fuera del <body> tampoco ayudaaaaaaaaaaa
:comp: :comp: :comp: :comp: :comp: :comp: :comp: :comp: :comp:
gnfrs:
Hola,
Si todo lo guardás en una tabla DBF intentá depurarlo paso a paso para ver dónde se corta y porqué.
Poné error_reporting(E_ALL); para ver todos los NOTICE, quizá haya un error que no podés ver y cause la prematura finalización de ejecución del script.
Saludos y espero que te sea de ayuda.
javier3:
Hola Gabriel gracias por responder te cuento logre encontrar cual era mi error, si te fijas en el for () utilizo un $item que es un variable que contiene un numero n, en este caso nro de socios, que se cargaran en un txt o en un dbf, ahora bien, pues resulta que esta variable $item me olvide de poner en el while() que recorre mi consulta, es asi que $item como no tenia ningun valor entonces el for nunca recorria por ende tonces no me graba ni michi en mi archivoi de texto, pero ahora ya lo hace bien, bueno de todos modos gracias por responder, ahora ahi tengo un pequeño problema con la generacion del dbf, haber como le hago bueno te dejo gracias
gnfrs:
Ahh, bien entonces.
Hay errores lógicos muy difíciles de encontrar y más aún si no tenés un depurador para comprobar la correcta ejecución de tus scripts.
Saludos.
Navegación
Ir a la versión completa