+ Responder ao Tópico



  1. #1
    drigo_medeiros
    Visitante

    Padrão session no php

    quando tento executar a função do php session_start() na minha página, da um erro assim:
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /www/htdocs/recom/carrinho.php:5) in /www/htdocs/recom/inc/carrinho.inc on line 7

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /www/htdocs/recom/carrinho.php:5) in /www/htdocs/recom/inc/carrinho.inc on line 7

    Eu já mudei o register_globals pra "On" no php.ini, mas não funciona...

    Alguem pode me dar um toque?

  2. #2

    Padrão session no php

    podem ser 2 coisas:

    1) vc jah deu session_start em algum lugar antes, tipo uma include ou coisa do tipo

    2) vc colocou session_start depois de algum codigo html, infelizmente o session da pau se for colocado depois de algum codigo html (mesmo que comentado)

  3. #3

    Padrão session no php

    o session_start deve estar na segunda linha do código, logo após a tag de abertura do bloco php.

    Se ela já estiver, e se esse arquivo estiver sendo incluido em uma outra página através de include, o problema ocorrerá tmb, pois vc já deve ter iniciado a sessão na outra página.

  4. #4
    drigo_medeiros
    Visitante

    Padrão me ajudem aí

    Deixa eu explicar...
    não dei nenhum session_start(); em outro lugar...
    na verdade eu tenho uma pagina carrinho.php que tem dois includes...
    include "conexao.inc" para fazer a conexão com o banco, e include "carrinho.inc", onde eu tento criar um vetor global, que não ta dando certo por causa do session_start(), que ta dentro do carrinho.inc.

    Depois que eu li as respostas, coloquei o session_start(); na página carrinho.php, na segunda linha do bloco php, mas continuou dando o mesmo erro... aí eu coloquei o session_start(); na primeira linha do bloco da pagina index.php da minha aplicação, e continuou o erro...

    o que eu faço???????

  5. #5

    Padrão session no php

    posta ai o inicio do teu arquivo index.php

  6. #6
    drigo_medeiros
    Visitante

    Padrão carrinho.php

    tentei modificar a pagina carrinho.php e continua o erro...
    aí vai TODO o código da página carrinho.php

    session_start();
    $conexao = mysql_connect("localhost", "root", "root");
    mysql_select_db ("recom");
    $idProd= $_GET["idProd"];
    $sql="select * from produtos where cdProduto = $idProd";
    $rsProduto=mysql_query($sql);
    $regProduto=mysql_fetch_array($rsProduto);
    $_SESSION[cesta][$cdProd][idProduto]=$regProduto[cdProduto];
    $_SESSION[cesta][$cdProd][nmProduto]=$regProduto[nmProduto];
    $_SESSION[cesta][$cdProd][preco]=$regProduto[preco];
    $_SESSION[cesta][$cdProd][qtde]=1;
    $chave=array_keys($_SESSION[cesta]);
    for ($i=0;$i<sizeof($chave);$i++){
    $indice=$chave[$i];
    echo $_SESSION[cesta]["$indice"]["idProduto"]."<br>".$_SESSION[cesta]["$indice"]["nmProduto"]."<br>".$_SESSION[cesta]["$indice"]["preco"]."<br>".$_SESSION[cesta]["$indice"]["qtde"]."<br><br><br>";
    }

    O erro continua....
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /www/htdocs/recom/carrinho.php:5) in /www/htdocs/recom/inc/carrinho.php on line 6

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /www/htdocs/recom/carrinho.php:5) in /www/htdocs/recom/inc/carrinho.php on line 6

  7. #7
    ja passei por isto
    Visitante

    Padrão Re: carrinho.php

    Citação Postado originalmente por drigo_medeiros
    tentei modificar a pagina carrinho.php e continua o erro...
    aí vai TODO o código da página carrinho.php

    session_start();
    $conexao = mysql_connect("localhost", "root", "root");
    mysql_select_db ("recom");
    $idProd= $_GET["idProd"];
    $sql="select * from produtos where cdProduto = $idProd";
    $rsProduto=mysql_query($sql);
    $regProduto=mysql_fetch_array($rsProduto);
    $_SESSION[cesta][$cdProd][idProduto]=$regProduto[cdProduto];
    $_SESSION[cesta][$cdProd][nmProduto]=$regProduto[nmProduto];
    $_SESSION[cesta][$cdProd][preco]=$regProduto[preco];
    $_SESSION[cesta][$cdProd][qtde]=1;
    $chave=array_keys($_SESSION[cesta]);
    for ($i=0;$i<sizeof($chave);$i++){
    $indice=$chave[$i];
    echo $_SESSION[cesta]["$indice"]["idProduto"]."<br>".$_SESSION[cesta]["$indice"]["nmProduto"]."<br>".$_SESSION[cesta]["$indice"]["preco"]."<br>".$_SESSION[cesta]["$indice"]["qtde"]."<br><br><br>";
    }

    O erro continua....
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /www/htdocs/recom/carrinho.php:5) in /www/htdocs/recom/inc/carrinho.php on line 6

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /www/htdocs/recom/carrinho.php:5) in /www/htdocs/recom/inc/carrinho.php on line 6

    eu sou + porquinho, trabalho com cookie ainda, não com session.
    BUTTTTT, toda vez que mando criar um cookie e o php já retornou algo pro navegador, ele dá este erro. ativei as opções de debug do PHP no .ini

    Repare se o PHP está retornando qualquer coisa pro navegador, antes de vc tentar criar a session, como um erro ou algo assim. Vc pode debugar manualmente colocando um echo "aqui" na linha logo acima da criação da session e ver se, antes dela, já tem alguma coisa no navegador, pedindo pra exibir o código-fonte. se houver, batata. abs.

  8. #8
    ReiserFS
    Visitante

    Padrão session no php

    Tipo o session_start não precisa esta na primeira linha do codigo, o problema eh que o session e iniciado no cabeçalho da pagina (HEADER) com isso se algum dado for passado para a pagina o php não vai mais conseguir escrever no HEADER com isso nao vai iniciar a session. Isso ocorre quando aparece alguma notice ou warning ver se vc ta usando includes, e da uma olhada nas includes. coloca display_erros off no php.ini e manda somente logar e ver no log qual o erro.