Link back to using php header

0

I have this simple report generator:

<?php 
	ob_start();

	include "../php/restrict.php"; 

	/******* Conexão com o bando de dados *******/
	include "../../Conexao/config.php";
	mysqli_select_db($config, $database_config);
	mysqli_set_charset($config,"utf8");
	/******* Conexão com o bando de dados *******/
		
	$info    = "Não há itens cadastrados no momento";
	$erro    = "Erro ao acessar dados";
	
	$pesq = $_GET['pesq'];
	
	$sql_1 = mysqli_query($config, "SELECT empresa FROM tb_configuracoes") or die(mysqli_error($config));
	
	if(@mysqli_num_rows($sql_1) <= '0'){
		echo "
        	<div class=\"row\">
				<div class=\"col-lg-6\">
                	<div class=\"erro_fix\">$erro</div>	
                </div>
           	</div>					
		";
	}else{
		while($r_sql_1 = mysqli_fetch_array($sql_1)){
			$empresa = $r_sql_1[0];  
		}
	}

	$map = array(
		'á' => 'a',
		'à' => 'a',
		'ã' => 'a',
		'â' => 'a',
		'é' => 'e',
		'ê' => 'e',
		'í' => 'i',
		'ó' => 'o',
		'ô' => 'o',
		'õ' => 'o',
		'ú' => 'u',
		'ü' => 'u',
		'ç' => 'c',
		'Á' => 'A',
		'À' => 'A',
		'Ã' => 'A',
		'Â' => 'A',
		'É' => 'E',
		'Ê' => 'E',
		'Í' => 'I',
		'Ó' => 'O',
		'Ô' => 'O',
		'Õ' => 'O',
		'Ú' => 'U',
		'Ü' => 'U',
		'Ç' => 'C',
		'ç' => 'c'
	);
		 
	$empresa_cor   = strtr($empresa, $map);		
	$empresa_final = str_replace(' ', '', $empresa_cor);
	date_default_timezone_set("America/Sao_Paulo");
	$data          = date("d/m/Y");
	$nome_arquivo  = "Relatorio_Geral" . "_" . $empresa_final . "_" . $data . ".xls";
	
	$gera_rel = mysqli_query($config, "SELECT SQL_CACHE email_emp, gerente, representante, data_criacao, razao_social, CodCli, categoria_base, cidade, uf, plano, status, id ". $pesq ."") or die(mysqli_error($config));
	
	if(@mysqli_num_rows($gera_rel) <= '0'){
		echo "<div class=\"erro\" 
			style=\" font:24px Arial, Helvetica, sans-serif;
			color:#ff6600;
			padding:10px 0 0 0;
			text-align:center;	
		\">Relat&oacute;rio de clientes</div><br /><br />"; 
		
		echo "<div class=\"erro\" 
			style=\" width:380px;
			height:20px;
			margin:10px 0 0 0;
			padding:6px 0 0 6px;
			background:#FFA6A6;
			border:1px solid #F00;
			font:14px Arial, Helvetica, sans-serif;
		\">Não h&aacute; dados para gerar o relat&oacute;rio</div><br /><br />"; 
		
		echo "<a class=\"erro\" 
			style=\" width:31px;
			height:12px;
			border:0px;
			color:#FFF;
			font-family:Arial, Helvetica, sans-serif;
			padding:1px 0 0 8px;
			font-size:9px;
			-moz-border-radius:5px;
			-webkit-border-radius:5px;
 			border-radius:5px;
			background:#2b2b2b;
			float:left;
			color:#FFF; 
			text-decoration:none;	
		\"href=\"../pages/cadastro_lista_edita.php\">Voltar</a>";
	}else{
		/*--------------------------------------------
		De: Rodrigo Kulb
		Viva o Linux
		Data 12/08/2008
		----------------------------------------------*/

		// Trazendo as informações da tabela: 	
		$header .= 'Nome do gerente'. "\t";
		$header .= 'Nome do representante'. "\t";
		$header .= 'Data cadastro'. "\t";
		$header .= 'Nome da empresa'. "\t";
		$header .= 'E-mail da empresa'. "\t";
		$header .= utf8_decode('Nome do usuário'. "\t");
		$header .= 'Categoria'. "\t";
		$header .= 'Subcategoria'. "\t";
		$header .= 'Subcategoria'. "\t";
		$header .= 'Subcategoria'. "\t";
		$header .= 'Cidade'. "\t";
		$header .= 'Estado'. "\t";
		$header .= 'Plano'. "\t";
		$header .= 'Valor do plano'. "\t";
		$header .= 'Forma de pagamento'. "\t";
		$header .= 'Status'. "\t";
		
		
		while($res_gera_rel = mysqli_fetch_array($gera_rel)){
			$email_sel             = $res_gera_rel[0];
			$id_gerente_sel        = $res_gera_rel[1];	
			$id_representante_sel  = $res_gera_rel[2];	
			$data_criacao_sel      = $res_gera_rel[3];
			$data_criacao_converte = date("d/m/Y", strtotime($data_criacao_sel)); 						
			$razao_social_sel      = utf8_decode($res_gera_rel[4]);	
			$CodCli_sel            = $res_gera_rel[5];	
			$id_categoria_base_sel = $res_gera_rel[6];	
			$cidade_sel            = utf8_decode($res_gera_rel[7]);	
			$uf_sel                = $res_gera_rel[8];	
			$id_plano_sel          = $res_gera_rel[9];	
			$id_status_sel         = $res_gera_rel[10];
			$id_empresa_sel        = $res_gera_rel[11];			

			//$valor_plano     = "";
			$forma_pagamento = "";
			
			$sql_ger = mysqli_query($config, "SELECT nome, sobrenome FROM tb_gerentes WHERE id_ger = '$id_gerente_sel'") or die(mysqli_error($config));
																		
			if(@mysqli_num_rows($sql_ger) <= '0'){
				echo "";
			}else{
				while($r_sql_ger = mysqli_fetch_array($sql_ger)){
					$nome_gerente_sel      = $r_sql_ger[0];
					$sobrenome_gerente_sel = $r_sql_ger[1];
					$gerente_sel = utf8_decode($nome_gerente_sel . " " . $sobrenome_gerente_sel);
				}
			}

			$sql_rep = mysqli_query($config, "SELECT nome, sobrenome FROM tb_representantes WHERE id_rep = '$id_representante_sel'") or die(mysqli_error($config));
																			
			if(@mysqli_num_rows($sql_rep) <= '0'){
				echo "";
			}else{
				while($r_sql_rep = mysqli_fetch_array($sql_rep)){
					$nome_representante_sel      = $r_sql_rep[0];
					$sobrenome_representante_sel = $r_sql_rep[1];
					$representante_sel = utf8_decode($nome_representante_sel . " " . $sobrenome_representante_sel);
				}
			}

			$sql_cli = mysqli_query($config, "SELECT nome, sobrenome FROM tb_clientes WHERE CodCli = '$CodCli_sel'") or die(mysqli_error($config));
																			
			if(@mysqli_num_rows($sql_cli) <= '0'){
				echo "";
			}else{
				while($r_sql_cli = mysqli_fetch_array($sql_cli)){
					$nome_cliente_sel      = $r_sql_cli[0];
					$sobrenome_cliente_sel = $r_sql_cli[1];
					$cliente_sel           = utf8_decode($nome_cliente_sel . " " . $sobrenome_cliente_sel);
				}
			}	

			$sql_cat = mysqli_query($config, "SELECT categoria FROM tb_categorias WHERE id = '$id_categoria_base_sel'") or die(mysqli_error($config));
																				
			if(@mysqli_num_rows($sql_cat) <= '0'){
				echo "<div class=\"erro\">Erro 3</div>";
			}else{
				while($r_sql_cat = mysqli_fetch_array($sql_cat)){
					$categoria_base_sel = utf8_decode($r_sql_cat[0]);
				}
			}
					
			$sql_planos = mysqli_query($config, "SELECT descricao, valor FROM tb_planos WHERE plano = '$id_plano_sel'") or die(mysqli_error($config));
																					
			if(@mysqli_num_rows($sql_planos) <= '0'){
				echo "";
			}else{
				while($r_sql_planos = mysqli_fetch_array($sql_planos)){
					$plano_sel       = $r_sql_planos[0];
					$valor_plano_sel = $r_sql_planos[1];
				}
			}

			$sql_status = mysqli_query($config, "SELECT descricao FROM tb_status WHERE status = '$id_status_sel'") or die(mysqli_error($config));
																				
			if(@mysqli_num_rows($sql_status) <= '0'){
				echo "";
			}else{
				while($r_sql_status = mysqli_fetch_array($sql_status)){
					$status_sel = utf8_decode($r_sql_status[0]);
				}
			}

			$sql_sub_cat = mysqli_query($config, "SELECT sub_categoria FROM tb_empresas_cat WHERE id_emp = '$id_empresa_sel'") or die(mysqli_error($config));
																					
			if(@mysqli_num_rows($sql_sub_cat) <= '0'){
				echo "";
			}else{
				while($r_sql_sub_cat = mysqli_fetch_array($sql_sub_cat)){
					$sub_cat_sel       = $r_sql_sub_cat[0];
					$array_sub_cat_sel = array($sub_cat_sel);
				}
			}

			$sql_sel_f_pag = mysqli_query($config, "SELECT paymentMethod FROM tb_pagamentos_assinaturas WHERE codEmpresa = '$id_empresa_sel'") or die(mysqli_error($config));
																					
			if(@mysqli_num_rows($sql_sel_f_pag) <= '0'){
				$forma = "";
			}else{
				while($r_sql_sel_f_pag = mysqli_fetch_array($sql_sel_f_pag)){
					$forma_pagamento_sel = $r_sql_sel_f_pag[0];
								
					switch($forma_pagamento_sel){
						case 'CREDIT_CARD':
							$forma = utf8_decode('Cartão de crédito');
						break;
						case 'BOLETO':
							$forma = utf8_decode('Boleto');
						break;
					}								
				}
			}	

			// Insere a linha	
			$line = '';
			
			$value = '"' ."$gerente_sel". '"' . "\t";
			$value .= '"' ."$representante_sel". '"' . "\t";
			if($data_criacao_sel == "0000-00-00"){
				$value .= '"' ."". '"' . "\t";
			}else{
				$value .= '"' ."$data_criacao_converte". '"' . "\t";
			}
			$value .= '"' ."$razao_social_sel". '"' . "\t";
			$value .= '"' ."$email_sel". '"' . "\t";
			$value .= '"' ."$cliente_sel". '"' . "\t";
			$value .= '"' ."$categoria_base_sel". '"' . "\t";
			
			if(!empty($array_sub_cat_sel[0])){
				$value .= '"' .utf8_decode($array_sub_cat_sel[0]). '"' . "\t";				
			}else{
				$value .= '"' ."". '"' . "\t";
			}

			if(!empty($array_sub_cat_sel[1])){
				$value .= '"' .utf8_decode($array_sub_cat_sel[1]). '"' . "\t";				
			}else{
				$value .= '"' ."". '"' . "\t";
			}
			
			if(!empty($array_sub_cat_sel[2])){
				$value .= '"' .utf8_decode($array_sub_cat_sel[2]). '"' . "\t";				
			}else{
				$value .= '"' ."". '"' . "\t";
			}
			
			$value .= '"' ."$cidade_sel". '"' . "\t";
			$value .= '"' ."$uf_sel". '"' . "\t";
			$value .= '"' ."$plano_sel". '"' . "\t";
			$value .= '"' ."$valor_plano_sel". '"' . "\t";
			$value .= '"' ."$forma". '"' . "\t";		
			$value .= '"' ."$status_sel". '"' . "\t";

			$line .= strtr($value,"","") ;

			// O trim retira os espaços encontrados no começo e no final de cada linha encontrada. 
			$dados .= trim($line)."\n";

			// Substituindo todas as quebras de linha ao final de cada registro, que por padrão seria \r por uma valor em branco, para que a formatao fique legível
			$dados = str_replace("\r","",$dados);

			// Caso não encontre nenhum registro, mostra esta mensagem. 
			if ($dados== "") {
				$dados = "\n Nenhum registro encontrado!\n"; 
			} 
		}		

		// Cabeçalhos e instrçueõs para geração e download do arquivo:
		header("Content-type: application/x-msexcel");

		// Este cabeçalho abaixo, indica que o arquivo dever ser gerado para download.
		header("Content-Disposition: attachment; filename=$nome_arquivo");

		// No cache, ou seja, não guarda cache, pois é gerado dinamicamente 
		header("Pragma: no-cache");

		// Não expira 
		header("Expires: 0");

		// E aqui geramos o arquivo com os dados mencionados acima! 
		print "$header\n$dados";
	}	
	
	mysqli_close($config);
?>

To run it, I'm always on another page. For example, I'm in query_clients.php and, when I click the report button, I go to the report.php.

The problem is that after generating the report and downloading, the query_clients.php page gets an empty hole.

Would you like to go back, in a "normal" way?

    
asked by anonymous 09.02.2018 / 14:20

0 answers