Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro Warning: Cannot modify header information

No (produto Formulário) quando adiciono a validação esta dando este erro, já tentei varias formas não consegui resolver, o mesmo codigo é adicionado no (adiciona-produto)

<?php include("cabecalho.php"); include("conecta.php"); include("banco-categoria.php");

if(!isset($_COOKIE["usuario_logado"])) {

header("Location: index.php?falhaDeSeguranca=true"); die(); }

$categorias = listaCategorias($conexao);

?>

acontece este erro:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\nerds\loja\cabecalho.php:17) in C:\AppServ\www\nerds\loja\produto-formulario.php on line 9

3 respostas
solução!

Nada pode ser enviado para o navegador antes da execução da instrução abaixo:

header("Location: index.php?falhaDeSeguranca=true"); die(); }

Verifique se um dos arquivos incluídos está enviando algo para ser escrito no navegador com "echo", "print_r" ou outra instrução de saída e retire a instrução.

include("cabecalho.php"); 
include("conecta.php"); 
include("banco-categoria.php")

Não é possível redirecionar depois que algo foi enviado para ser exibido no navegador.

Bom dia, esse é o código do produto-formulário, quando eu retiro os :

<?php include("cabecalho.php"); include("conecta.php"); include("banco-categoria.php");

da certo, mas na hora que vou abrir o cadastro de produto por faltar o cabecalho ele aparece todo desconfigurado, ai quando eu deixo os include aparece essa massagem de erro tem jeito de usar outra função sem ser o header ?

Mensagem de erro : Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\nerds\loja\cabecalho.php:17) in C:\AppServ\www\nerds\loja\produto-formulario.php on line 9

aguardo retorno, obrigado!

<?php include("cabecalho.php");
include("conecta.php");
include("banco-categoria.php");



if(!isset($_COOKIE["usuario_logado"])) {

    header("Location: index.php?falhaDeSeguranca=true");
    die();
}

$categorias = listaCategorias($conexao);

?>


        <h1> Formulario Produto</h1>
        <form action = "adiciona-produto.php" method="post">
            <table class="table">
                <tr>
                    <td>Nome</td>
                    <td><input class="form-control" type="text" name="nome"></td>
                </tr>
                <tr>
                    <td>Preço</td>
                    <td><input class="form-control" type="text" name="preco"></td>
                </tr>
                <tr>
                    <td>Descrição</td>
                    <td><textarea class="form-control "name="descricao"></textarea></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="checkbox" name="usado" value="true"> Usado
                </tr>


                <tr>
                    <td>Categoria</td>
                    <td>
                        <select name="categoria_id" class="form-control">
                        <?php foreach($categorias as $categoria) : ?>
                            <option value="<?=$categoria['id']?>">
                                    <?=$categoria['nome']?>
                            </option>                
                        <?php endforeach ?>            
                        </select>
                    </td>
                </tr>

                <tr>
                    <td>
                    <button class="btn btn-primary" type="submit"> Cadastrar </button>
                    </td>
                </tr>
            </table>        

        </form>

<?php include("rodape.php");?>

Mostre o código destes três arquivos. Um deles está gerando o erro porque está enviando informações para o navegador escrever.

cabecalho.php
conecta.php
banco-categoria.php