Ir para conteúdo
Fórum Script Brasil
  • 0

Erro Ao Autenticar Por Sessão


Manuel

Pergunta

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 para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...