Cannot modify header. Sem motivo.
Estou querendo fazer download de um arquivo .txt após ter criado. Mas não consigo em 2 páginas das 3 que criei.
Todas tem o mesmo código. Umas mais curtas (a que funciona) e outras mais extensas (as que não funcionam)
Já pesquisei na internet mas não consigo resolver.
Não uso a tag header(), exceto em 1 caso. e tenho certeza q esse caso não interfere.
São envolvidos 3 arquivos: dadosdb.php, index.php e download.php
O dadosdb.php eu uso com require na página index.php, e na página index.php uso download.php como action do form
No dadosdb, além de outras coisas, inseri na primeira linha um header. Antes de inserí-lo, já tinha esse erro do cannot modify header.
header('Content-Type: text/html; charset=utf-8');
depois disso, tenho CONST Conexão com o mysql $menu <style> <script>
Na index.php
<head>
<?php require '../../dadosdb.php'?>
<?php echo $menu;?>
e por aí segue o conteúdo, retornando a usar o php somente para pegar o menu. e não mais depois.
No download.php
<?php
if (isset($_POST['Enviar'])){
header('Content-Type: text/html; charset=utf-8');
$vaviáveis.....
$cont=conteúdo do txt
$arquivo="Prestadores.RPE";
file_put_contents($arquivo, $cont);
$redirect = "download.php";
header("location:$redirect");
};
$arquivo="Prestadores.RPE";
header("Content-Length: ".filesize($arquivo)); // informa o tamanho do arquivo ao navegador
header("Content-Disposition: attachment; filename=".basename($arquivo)); // informa ao navegador que é tipo anexo e faz abrir a janela de download, tambem informa o nome do arquivo
readfile($arquivo); // lê o arquivo
exit; // aborta pós-ações
?>
Quando eu envio os dados, ele aponta o erro na linha 93, que está em negrito e sublinhado.
$array=$_POST['incPrest'];
$length = count($_POST['incPrest']);
for ($i = 0; $i < $length; $i++) {
print $cont .='
Linha 93
<xs:element ref="inclusaoPrestador" minOccurs="1" maxOccurs="unbounded">'.$array[$i].'</xs:element>';
};
Não consigo ver erro de sintaxe, ou qualquer coisa, não sou de usar a tag header(). E aqui ela apenas é usada no início do dadosdb.php e download.php, além do final, onde faço o download do arquivo.
O arquivo é criado perfeitamente, mas, na hora do download, não acontece.
*****
Como não pegou o negrito e sublinhado na citação do código, está dentro do quote a linha 93
Discussão (2)
Carregando comentários...