Error opening excel generated in php

1

I have a system that generates forms for the client, and when it fills in this automatically saves an Excel with the data, but when I go to open Excel appears the error:

O formato de arquivo e a extensão de 'Nome do arquivo'.xls' não correspondem. 
O arquivo pode estar corrompido ou não ser seguro. Não o abra, a menos que 
confie na fonte. Quer abri-lo mesmo assim?

NOTE: Even when the error appears, it usually opens by clicking on the

The code which use to generate Excel is as follows:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
</head>
<body>

<?php 

date_default_timezone_set("Brazil/East");

include_once("../conn/conexao.php");
include_once("../PHPMailer/class.phpmailer.php");

$link = $_POST["link"];
$idUsuario = $_POST["id_usuario"];
$idCliente = $_POST["id_cliente"];
$nome = $_POST["nome"];
$responsavel = $_POST["responsavel"];
$telefone = $_POST["telefone"];
$cpf = removeAcentos($_POST["cpf"]);
$cpf = str_replace("." , "" , $cpf ); // Primeiro tira os pontos
$cpf = str_replace("," , "" , $cpf);
$cpf = str_replace("-" , "" , $cpf);
$ie = $_POST["ie"];
$endereco = $_POST["endereco"];
$bairro = $_POST["bairro"];
$enderecoEntrega = $_POST["enderecoentrega"];
$cidade = $_POST["cidade"];
$estado = $_POST["estado"];
$cep = $_POST["cep"];
$email = $_POST["email"];
$data = date("d-m-Y");
$hora = date("s");

$cotacao = $_POST["cotacao"];
$diasUteis = $_POST["diasUteis"];
$valorFrete = $_POST["valorFrete"];


$usuario_rodrigo =array('SC','RS'); 
$usuario_cintia =array('SP','RJ','ES','MG');
$usuario_forfun =array('BA','SE','PE','AL','PB','RN','CE','PI','MA');


//Verifica se o usuario existe ou não
$sql = mysqli_query($conn, "SELECT * FROM clientes WHERE cpf = '{$cpf}'") or 
print mysql_error();

if(mysqli_num_rows($sql)<1) { 

$query = "INSERT INTO clientes (nome, responsavel, endereco, 
endereco_entrega, cpf, telefone, cidade, estado, ie, cep, email, link, 
bairro) VALUES('$nome', '$responsavel', '$endereco', '$enderecoEntrega', 
'$cpf', '$telefone', '$cidade', '$estado', '$ie', '$cep', '$email', '$link' 
, '$bairro')";
$processaCliente = mysqli_query($conn,$query);

}else {

    $query = "UPDATE clientes SET nome='$nome', responsavel = 
'$responsavel', endereco = '$endereco', endereco_entrega = 
'$enderecoEntrega', telefone = '$telefone', cidade = '$cidade', estado = 
'$estado', ie = '$ie', cep = '$cep', email = '$email', bairro = '$bairro', 
link = '$link'  WHERE cpf = '$cpf'";
    $processaCliente = mysqli_query($conn,$query);

}



//Criar a tabela HTML em formato de planilha
$html .= "";
$html .= "<table>";
$html .= "<tr>";
$html .= "<td colspan='7' style='height:0.3cm;'></td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='2' style='text-align:center;'><b><img src='https://i.imgur.com/BZn58Qj.png' alt='' /></b></td>";
$html .= "</tr>";
$html .= "</table>";

$html .= "<table>";
$html .= "<tr>";
$html .= "<td colspan='4'></td>";
$html .= "<td colspan='6' style=' font-size:16px;'><b>Data de Saida:</b></td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='4'></td>";
$html .= "<td colspan='3' style=' border:1px solid #c4c4c4; font-size:16px; height:1cm;'><b></b></td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='7' style='height:0.8cm;'></td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='4'></td>";
$html .= "<td colspan='3'  style=' border:1px solid #333;'><b>Vendedor:</b>          </td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='4'></td>";
$html .= "<td colspan='3' style=' border:1px solid #333;'><b>Vendas:</b>          </td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='7' style='height:0.8cm;'></td>";
$html .= "</tr>";
$html .= "</table>";


$html .= "<table border='1'>";
$html .= "<tr>";
$html .= "<td colspan='7' style='text-align:center; font-size:16px;'><b>Solicitação de Compra</b></td>";
$html .= "</tr>";


$html .= "<tr>";
$html .= "<td><b>ID:</b></td>";
$html .= "<td colspan='6' style='text-align:left;'>$idCliente</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Nome:</b></td>";
$html .= "<td colspan='6'>$nome</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Responsavel:</b></td>";
$html .= "<td colspan='6'>$responsavel</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Endereço:</b></td>";
$html .= "<td colspan='6'>$endereco</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Endereço de Entrega:</b></td>";
$html .= "<td colspan='6'>$enderecoEntrega</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Bairro de Entrega:</b></td>";
$html .= "<td colspan='6'>$bairro</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Cidade e estado:</b></td>";
$html .= "<td colspan='6'>$cidade - $estado</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Cep:</b></td>";
$html .= "<td colspan='6' style='text-align:left;'>$cep</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Telefone:</b></td>";
$html .= "<td colspan='6' style='text-align:left;'>$telefone</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Cpf / Cnpj:</b></td>";
$html .= "<td colspan='6' style='text-align:left;'>$cpf</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Inscrição Estadual:</b></td>";
$html .= "<td colspan='6' style='text-align:left;'>$ie</td>";
$html .= "</tr>";

$html .= "<tr>";
$html .= "<td><b>Email:</b></td>";
$html .= "<td colspan='6' style='text-align:left;'>$email</td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='7' style='height:0.5cm;'> </td>";
$html .= "</tr>";

$produtos = isset($_POST["produtos"]) ? $_POST["produtos"] : '';

if($produtos != ''){
 for ($i = 0; $i < count($produtos['nome']); $i++) {

    $nomeProduto = $produtos['nome'][$i];
    $qnt1Produto = $produtos['qnt1'][$i];
    $qnt2Produto = $produtos['qnt2'][$i];
    $qnt3Produto = $produtos['qnt3'][$i];
    $qnt4Produto = $produtos['qnt4'][$i];
    $qnt5Produto = $produtos['qnt5'][$i];

    $valor1Produto = $produtos['valor1'][$i];
    $valor2Produto = $produtos['valor2'][$i];
    $valor3Produto = $produtos['valor3'][$i];
    $valor4Produto = $produtos['valor4'][$i];
    $valor5Produto = $produtos['valor5'][$i];

    $resultado1Produto = $produtos['resultado1'][$i];
    $resultado2Produto = $produtos['resultado2'][$i];
    $resultado3Produto = $produtos['resultado3'][$i];
    $resultado4Produto = $produtos['resultado4'][$i];
    $resultado5Produto = $produtos['resultado5'][$i];

    $totalProduto = $produtos['total'][$i];

    $qntProduto = $produtos['finalQntd'][$i];

    $qntFinal = $produtos['finalQntdProduto'][1];

    $finalProdutos = $produtos['final'][0];
    $finalPedido = $produtos['final'][1];

$htmlProdutos[] =
'<tr>' .
'<td colspan="7" style="text-align:center; font-size:16px;"><b>' . $nomeProduto . '</b></td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>Tamanho</b></td>' .
'<td colspan="2" style="text-align:center;"><b>Qtd</b></td>' .
'<td colspan="2" style="text-align:center;"><b>Valor unit</b></td>' .
'<td colspan="2" style="text-align:center;"><b>Valor total</b></td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>P</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt1Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor1Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado1Produto . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>M</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt2Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor2Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado2Produto . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>G</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt3Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor3Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado3Produto . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>GG</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt4Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor4Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado4Produto . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>XG</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt5Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor5Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado5Produto . '</td>' .
'</tr>' .
'<tr>' .
'<td colspan="1" style="text-align:center;"><b> QTD Total: </b></td>' .
'<td colspan="2" style="text-align:center;"><b>' . $qntProduto . '</b></td>' .
'<td colspan="2" ></td>' .
'<td colspan="2" style="text-align:center;"><b>R$' . $totalProduto . '</b></td>' .
'</tr>' .
'<tr>' .
'<td colspan="7" style="height:0.5cm;"> </td>' .
'</tr>';

    }
}

$produtosInfantis = isset($_POST["produtosInfantis"]) ? $_POST["produtosInfantis"] : '';

if($produtosInfantis != ''){
 for ($i = 0; $i < count($produtosInfantis['nome']); $i++) {

    $nomeProdutoInfantil = $produtosInfantis['nome'][$i];
    $qnt1ProdutoInfantil = $produtosInfantis['qnt1'][$i];
    $qnt2ProdutoInfantil = $produtosInfantis['qnt2'][$i];
    $qnt3ProdutoInfantil = $produtosInfantis['qnt3'][$i];
    $qnt4ProdutoInfantil = $produtosInfantis['qnt4'][$i];
    $qnt5ProdutoInfantil = $produtosInfantis['qnt5'][$i];
    $qnt6ProdutoInfantil = $produtosInfantis['qnt6'][$i];

    $valor1ProdutoInfantil = $produtosInfantis['valor1'][$i];
    $valor2ProdutoInfantil = $produtosInfantis['valor2'][$i];
    $valor3ProdutoInfantil = $produtosInfantis['valor3'][$i];
    $valor4ProdutoInfantil = $produtosInfantis['valor4'][$i];
    $valor5ProdutoInfantil = $produtosInfantis['valor5'][$i];
    $valor6ProdutoInfantil = $produtosInfantis['valor6'][$i];

    $resultado1ProdutoInfantil = $produtosInfantis['resultado1'][$i];
    $resultado2ProdutoInfantil = $produtosInfantis['resultado2'][$i];
    $resultado3ProdutoInfantil = $produtosInfantis['resultado3'][$i];
    $resultado4ProdutoInfantil = $produtosInfantis['resultado4'][$i];
    $resultado5ProdutoInfantil = $produtosInfantis['resultado5'][$i];
    $resultado6ProdutoInfantil = $produtosInfantis['resultado6'][$i];

    $totalProdutoInfantil = $produtosInfantis['total'][$i];

    $qntProdutoInfantil = $produtosInfantis['finalQntd'][$i];


$htmlProdutosInfantis[] =
'<tr>' .
'<td colspan="7" style="text-align:center; font-size:16px;"><b>' . $nomeProdutoInfantil . '</b></td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>Tamanho</b></td>' .
'<td colspan="2" style="text-align:center;"><b>Qtd</b></td>' .
'<td colspan="2" style="text-align:center;"><b>Valor unit</b></td>' .
'<td colspan="2" style="text-align:center;"><b>Valor total</b></td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>6</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt1ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor1ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado1ProdutoInfantil . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>8</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt2ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor2ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado2ProdutoInfantil . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>10</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt3Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor3Produto . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado3Produto . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>12</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt4ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor4ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado4ProdutoInfantil . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>14</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt5ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor5ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado5ProdutoInfantil . '</td>' .
'</tr>' .
'<tr>' .
'<td style="text-align:center;"><b>16</b></td>' .
'<td colspan="2" style="text-align:center;">' . $qnt6ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $valor6ProdutoInfantil . '</td>' .
'<td colspan="2" style="text-align:center;">R$' . $resultado6ProdutoInfantil . '</td>' .
'</tr>' .
'<tr>' .
'<td colspan="1" style="text-align:center;"><b> QTD Total: </b></td>' .
'<td colspan="2" style="text-align:center;"><b>' . $qntProdutoInfantil . '</b></td>' .
'<td colspan="2" ></td>' .
'<td colspan="2" style="text-align:center;"><b>R$ ' . $totalProdutoInfantil . '</b></td>' .
'</tr>' .
'<tr>' .
'<td colspan="7" style="height:0.5cm;"> </td>' .
'</tr>';

    }
}

for ($i = 0; $i < count($htmlProdutos); $i++) {
    $html .= $htmlProdutos[$i];
}
for ($i = 0; $i < count($htmlProdutosInfantis); $i++) {
    $html .= $htmlProdutosInfantis[$i];
}

$html .="<tr>";
$html .="<td colspan='1'></td>";
$html .="<td colspan='2'style='text-align:center;'><b>$qntFinal</b></td>";
$html .="<td colspan='2' style='text-align:center;'><b>Valor:</b></td>";
$html .="<td colspan='2'style='text-align:center;'><b>R$ $finalProdutos</b></td>";
$html .="</tr>";
$html .="<tr>";
$html .="<td colspan='7' style='height:0.8cm;'> </td>";
$html .="</tr>";
$html .="<tr>";
$html .="<td colspan='7' style='text-align:center; font-size:16px;'><b>Frete por conta do cliente:</b></td>";
$html .="</tr>";
$html .="<tr>";
$html .="<td colspan='7' style='height:0.3cm;'> </td>";
$html .="</tr>";
$html .="<tr>";
$html .="<td colspan='1' style='text-align:center;'><b> Cotação: </b></td>";
$html .="<td colspan='2' style='text-align:center;'><b> Dias Uteis</b></td>";
$html .="<td colspan='4' style='text-align:center;'><b>Valor final do frete:</b></td>";
$html .="</tr>";
$html .="<tr>";
$html .="<td colspan='1' style='text-align:center;'>$cotacao</td>";
$html .="<td colspan='2' style='text-align:center;'>$diasUteis</td>";
$html .="<td colspan='4' style='text-align:center;'>R$ $valorFrete</td>";
$html .="</tr>";
$html .="<tr>";
$html .="<td colspan='7' style='height:0.5cm;'> </td>";
$html .="</tr>";
$html .="<tr>";
$html .="<td colspan='3' style='text-align:center;'><b>Valor total do Pedido:</b></td>";
$html .="<td colspan='4' style='text-align:center;'><b>R$ $finalPedido</b></td>";
$html .="</tr>";
$html .="<tr>";
$html .="<td colspan='7' style='height:0.8cm;'> </td>";
$html .="</tr>";
$html .="</table>";

$html .="<table border='1'>";
$html .= "<tr>";
$html .= "<td colspan='7' style='text-align:center; font-size:16px;'><b>Formas de Pagamento</b></td>";
$html .= "</tr>";
$html .="</table>";
$html .="<table>";
$html .= "<tr>";
$html .= "<td colspan='7' style='text-align:center;'><b></b></td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='7' style='text-align:center; '><b></b></td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='7' style='text-align:center; '><b></b></td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='7' style='text-align:center; '><b></b></td>";
$html .= "</tr>";
$html .="</table>";
$html .="<table border='1'>";
$html .= "<tr>";
$html .= "<td colspan='7' style='text-align:left; font-size:14px;'><b>Dados para Depósito: Banco do Brasil AG 3674-9    CC 13463-5</b></td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td colspan='7' style='text-align:left; font-size:14px;'><b>For Fun Confecção e Comercio de Vestuário Ltda  -  CNPJ 08.768.831/0001-10</b></td>";
$html .= "</tr>";
$html .="</table>";

// Configurações header para forçar o download

$arquivo = "../arquivos/Pedido-$cpf-$data.xls";

if (file_exists($arquivo)) {
    file_put_contents("../arquivos/Pedido-$cpf-$data-$hora.xls", $html);
    $download = "https://www.camisetasdecorrida.com.br/painel/arquivos/Pedido-$cpf-$data-$hora.xls";
} else {
    file_put_contents("../arquivos/Pedido-$cpf-$data.xls", $html);
    $download = "https://www.camisetasdecorrida.com.br/painel/arquivos/Pedido-$cpf-$data.xls";
}

// Inicia a classe PHPMailer
$mail = new PHPMailer(true);


// Define os dados do servidor e tipo de conexão
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsSMTP(); // Define que a mensagem será SMTP

try {
 $mail->Host = 'smtp.camisetasdecorrida.com.br'; // Endereço do servidor SMTP (Autenticação, utilize o host smtp.seudomínio.com.br)
 $mail->SMTPAuth   = true;  // Usar autenticação SMTP (obrigatório para smtp.seudomínio.com.br)
 $mail->Port       = 587; //  Usar 587 porta SMTP
 $mail->Username = '[email protected]'; // Usuário do servidor SMTP (endereço de email)
 $mail->Password = 'c1a2m3i4s5e6'; // Senha do servidor SMTP (senha do email usado)

 //Define o remetente
 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    
 $mail->SetFrom('[email protected]', "Grade do(a) $nome"); //Seu e-mail
 $mail->AddReplyTo("$email", "Grade do(a) $nome"); //Seu e-mail
 $mail->Subject = 'Grade de pedido';//Assunto do e-mail

 $emailDestino = "";

    if(in_array(strtoupper($_POST["estado"]),$usuario_rodrigo)){     

                $emailDestino = "[email protected]";  

    }

    elseif(in_array(strtoupper($_POST["estado"]),$usuario_cintia)){ 

                $emailDestino = "[email protected]";

    }

    elseif(in_array(strtoupper($_POST["estado"]),$usuario_forfun)){ 

                $emailDestino = "[email protected]";

    }

    else{

                $emailDestino = "[email protected]";

    };



$mail->AddAddress($emailDestino); 

$mail->MsgHTML("
   <strong>Grade de pedido do cliente:</strong> $nome <br />
   <strong>Email para Confirmacao:</strong> $email <br />
   <b>IP:</b> $_SERVER[REMOTE_ADDR] <br /><br />

   <b>Link de download do excel:</b> $download <br /><br />

 "); 

// Envia o conteúdo do arquivo
$mail->Send();
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=https://www.camisetasdecorrida.com.br/confirmacao_pedido.php'>";//Mensagem de erro costumizada do PHPMailer

//caso apresente algum erro é apresentado abaixo com essa exceção.
}catch (phpmailerException $e) {
   echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=https://www.camisetasdecorrida.com.br/erro_pedido.php'>";//Mensagem de erro costumizada do PHPMailer
}

function removeAcentos($string, $slug = false) {
   $string = strtolower($string);
   // Código ASCII das vogais
   $ascii['a'] = range(224, 230);
   $ascii['e'] = range(232, 235);
   $ascii['i'] = range(236, 239);
   $ascii['o'] = array_merge(range(242, 246), array(240, 248));
   $ascii['u'] = range(249, 252);
   // Código ASCII dos outros caracteres
   $ascii['b'] = array(223);
   $ascii['c'] = array(231);
   $ascii['d'] = array(208);
   $ascii['n'] = array(241);
   $ascii['y'] = array(253, 255);
   foreach ($ascii as $key=>$item) {
 $acentos = '';
 foreach ($item AS $codigo) $acentos .= chr($codigo);
 $troca[$key] = '/['.$acentos.']/i';
   }
   $string = preg_replace(array_values($troca), array_keys($troca), $string);
   // Slug?
   if ($slug) {
 // Troca tudo que não for letra ou número por um caractere ($slug)
 $string = preg_replace('/[^a-z0-9.]/i', $slug, $string);
 // Tira os caracteres ($slug) repetidos
 $string = preg_replace('/' . $slug . '{2,}/i', $slug, $string);
 $string = trim($string, $slug);
   }
   return $string;
}


 ?>
 </body>
 </html>
    
asked by anonymous 22.12.2017 / 10:37

0 answers