numero 1 Denunciar post Postado Fevereiro 19, 2015 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 Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 19, 2015 Não pode haver nenhuma saída ao navegador antes de header(). Ou seja, nenhum echo, nenhuma tag HTML e nem sequer um espaço em branco antes da tab <?php. Compartilhar este post Link para o post Compartilhar em outros sites
numero 1 Denunciar post Postado Fevereiro 19, 2015 Não pode haver nenhuma saída ao navegador antes de header(). Ou seja, nenhum echo, nenhuma tag HTML e nem sequer um espaço em branco antes da tab <?php. Valeu! Joguei os $_POST para a página index.php Mantive no download.php apenas os headers, para fazer o download. E usei o location do javascript na index no final do código após inserir e gravar os dados no arquivo. Fazendo o download normalmente. :joia: Compartilhar este post Link para o post Compartilhar em outros sites