Jump to content
Fórum Script Brasil
  • 0

Erro Ao Autenticar Por Sessão


Manuel
 Share

Question

Warning: Cannot send session cookie - headers already sent by (output started at c:\apache\htdocs\os2\login.php:5) in c:\apache\htdocs\os2\login.php on line 24

Warning: Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\os2\login.php:5) in c:\apache\htdocs\os2\login.php on line 24

Esses erros aparecem quando autentico em uma página via sessão.

alguém pode me ajudar?

Manuel

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Pode me dizer em que parte eu envie antes de iniciar???

da uma olhada ai, por favor!

<?
    include 'functions.php';
    session_start();
    
    if ((isset($_POST['usr'])) && (isset($_POST['pwd']))) //se o usuário digitou o login e senha na pagina         login.html
    {
        $usr = $_POST['usr'];
        $pwd = md5($_POST['pwd']);
    
        conexao();//conexão com BD
        $query = "select * from login where nom_usr='$usr' and pwd_usr='$pwd'";
        $resultado = mysql_query ($query) or die ("Erro na execução do query. ".mysql_error());
        if (mysql_num_rows($resultado) == 0)
        {
            echo "<font face='verdana' color='#FF0000'><strong>Falha na autenticação!</strong></font><br><br>
                  <a href='login.html'><font face='verdana' size='4'>Tentar novamente!</font></a>";
        }
        else
        {
            //se o usuario estiver cadastrado, registra a sessão
            $_SESSION['valido'] = $usr;
            echo "<p><br>";
            echo '<P ALIGN=CENTER><FONT SIZE=4 face="Verdana, Arial, Helvetica, sans-serif"><strong>Você se autenticou como <em>'.$_SESSION['valido'].'</em></strong></FONT></p><p><br><br>';
            echo "<font face='verdana' size='2'><strong><a href='indexadmin.php'>Ir para página administrativa</a></strong></font></p><br></p>";        
        }
    }
        
    echo '<p><img src="figuras/linha.bmp"></p>';
    echo '<p align="center"><font size="1" face="Verdana">Página de relatórios desenvolvida por: Informática IGEN </font><br><br>';
      if (isset($_SESSION['valido']))
    {
          echo '<center><font size="1" face="Verdana"><a href="logoff.php"><b>Efetuar Logoff</b></a></font></center>';    
      }
  ?>

Abraços, Manuel

Link to comment
Share on other sites

  • 0

Pelo que conheço, nesse caso que já aconteceu comigo, tem que ver dois lances:

Se há espaços vazios ou tags html antes de iniciar a seção;

O conteúdo do arquivo functions.php, que está sendo incluído antes de iniciar a seção.

Link to comment
Share on other sites

  • 0

Já resolveu o problema?

testei o script no meu servidor e deu tudo certo, quando coloquei UM ESPAÇO EM BRANCO na primeira linha do arquivo login.php e testei, deu o erro abaixo, e quando coloquei o espaço em branco no arquivo functions.php, que está sendo incluído no aquivo login.php e testei, também deu o mesmo erro:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/adminpt/public_html/noticias/login.php:2) in /home/adminpt/public_html/noticias/login.php on line 3

que é diferente do erro apresentado no seu script:

Warning: Cannot send session cookie - headers already sent by (output started at c:\apache\htdocs\os2\login.php:5) in c:\apache\htdocs\os2\login.php on line 24

Outro lance é que o erro que você postou aponta a linha 24 do script, e o cód que você postou não tem nada na linha 24 relacionado, tá faltando alguma coisa? o script é só isso?

Altere o valora das variáveis, no php.ini, porque você tá testando em um servidor local e não deve estar configurado corretamente.

- output_buffering = On

- register_globals = On

- session.cache_limiter = nocache

- session.cache_expire = 180

- session.use_trans_sid = 1

Pesquisei na internet e encontrei esses tópicos:

http://www.guiadohardware.net/comunidade/s...ons-php/122774/

http://br.php.net/manual/pt_BR/function.session-register.php

http://br.php.net/manual/pt_BR/function.session-start.php

Vê se ajuda. ;)

Link to comment
Share on other sites

  • 0

E aí velho, tranquilo???

então.. é o seguinte... o script que eu postei é assim.. eu só coloquei a parte do php... na verdade tem um pouco de html antes.. vou coloca-lo pro completo... essas configurações que você me mandou também não mudou... to imaginando que possa ser alguma coisa pra configurar no php.ini, porque acontece o seguinte...

se eu coloco @session_star(), com o arroba na frente ele me esconde os erros... mas de qualquer forma esta fazendo a autenticação... só que autentica só em algumas páginas... em outras ele não passa a variavel do sid pelo link.. ow seja.. parece que não cria a sessão em algumas páginas...

por isso que eu estou achando que é alguma coisa no php.ini...

Aquilo que você disse dos espaços em branco, não entendi onde você quis dizer...

Abraços!!

manuel

O código todo:

<html>
<head>
<title>Sistema de Gerenciamento de Ordem de Serviço (SGOS)</title>
<style type="text/css">
 <!--
 a:link { font-family:Verdana,sans-serif; color:rgb(102,102,102); text-decoration:none; }
 a:visited { color:rgb(102,102,102); text-decoration:none; }
 a:hover { font-family:Verdana,sans-serif; color:black; text-decoration:underline; }
 a:active { font-family:Verdana,sans-serif; color:rgb(102,102,102); text-decoration:underline; }
 body.novo { font-family:Verdana,sans-serif; }
-->

</style>
</head>

<body>
<div align="center"> 
  <p><img src="figuras/logo.GIF" width="582" height="104"></p>
  <br>
  <?
    session_start();
    include 'functions.php';
    if ((isset($_POST['usr'])) && (isset($_POST['pwd']))) //se o usuário digitou o login e senha na pagina login.html
    {
        $usr = $_POST['usr'];
        $pwd = md5($_POST['pwd']);
    
        conexao();//conexão com BD
        $query = "select * from login where nom_usr='$usr' and pwd_usr='$pwd'";
        $resultado = mysql_query ($query) or die ("Erro na execução do query. ".mysql_error());
        if (mysql_num_rows($resultado) == 0)
        {
            echo "<font face='verdana' color='#FF0000'><strong>Falha na autenticação!</strong></font><br><br>
                  <a href='login.html'><font face='verdana' size='4'>Tentar novamente!</font></a>";
        }
        else
        {
            //se o usuario estiver cadastrado, registra a sessão
            $_SESSION['valido'] = $usr;
            echo "<p><br>";
            echo '<P ALIGN=CENTER><FONT SIZE=4 face="Verdana, Arial, Helvetica, sans-serif"><strong>Você se autenticou como <em>'.$_SESSION['usr'].'</em></strong></FONT></p><p><br><br>';
            echo "<font face='verdana' size='2'><strong><a href='indexadmin.php'>Ir para página administrativa</a></strong></font></p><br></p>";        
        }
    }
        
    echo '<p><img src="figuras/linha.bmp"></p>';
    echo '<p align="center"><font size="1" face="Verdana">Página de relatórios desenvolvida por: Informática IGEN </font><br><br>';
      if (isset($_SESSION['usr']))
    {
          echo '<center><font size="1" face="Verdana"><a href="logoff.php"><b>Efetuar Logoff</b></a></font></center>';    
      }
  ?>

</div>
</body>
</html>

Link to comment
Share on other sites

  • 0

também acho que é o php.ini, porque aqui rodou beleza, sem erros. Vou testar esse script completo e pesquisar na internet pra ver se ajudo. Vlw's.

E o lance do espaço em branco, é que espaço em branco da o erro "Cannot send session cache limiter ", e o seu script tá dando o erro "Cannot send session cookie", entendeu?

#################

EDITADO

#################

Peguei no manual de php:

Nota: Se você está usando sessões baseadas em cookie, você deve chamar session_start() antes de qualquer coisa ser exibida para o navegador.

Tira o session_start do meio do html e coloca no início.

Tem uma galera aqui que entende de php, eu só pesquiso pra resolver a dúvida quando aparece, vamu ver se alguém dá uma força, rssss.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...