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

Warning: session_start() [function.session-start]: Cannot send session


Martinsrj

Pergunta

Ola pessoal!

Tenho um sistema que roda direitinho em uma maquina, porem o mesmo sistema coloquei em um outro micro, porem da o seguinte erro:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Inetpub\wwwroot\mti-prod\htdocs\consulta.php:2) in C:\Inetpub\wwwroot\mti-prod\htdocs\autenticacao.php on line 5

já verifiquei em sites, foruns sobre o erro, porem as dicas não ajudou com o erro do meu codigo.

Desde já agradeco pela ajuda.

Abraços.

1 <?php
2require_once 'morrer.php';
3 require_once 'conexao.php';
4
5 session_start();
6
7 $usuario['sq_usuario'] = '';
8 $usuario['no_login'] = '';
9 $usuario['logado'] = 0;
10 $usuario['perfil'] = '';
11
12 if( isset($_COOKIE["login"]) and isset($_COOKIE["senha"]) and $_COOKIE["login"] and $_COOKIE["senha"] ){
13    setcookie("login", $_COOKIE["login"], time()+259200);
14    setcookie("senha", $_COOKIE["senha"], time()+259200);
15    $_SESSION["login"] = $_COOKIE["login"];
16    $_SESSION["senha"] = $_COOKIE["senha"];
17 }
18
19 if( isset($_SESSION["login"]) and isset($_SESSION["senha"]) and $_SESSION["login"] and $_SESSION["senha"] ){
20    $no_login = addslashes($_SESSION["login"]);
21    $ps_senha = addslashes($_SESSION["senha"]);
22    $resAuth = mysql_query("select sq_usuario,no_usuario from usuario where no_login='$no_login' and ps_senha='$ps_senha' and fg_excluido!=1");
23    if( mysql_num_rows($resAuth) ){
24        $rowAuth = mysql_fetch_assoc($resAuth);
25        $usuario['logado'] = 1;
26        $usuario['no_login'] = $no_login;
27        $usuario['sq_usuario'] = $rowAuth['sq_usuario'];
28
29        $resPerfil = mysql_query("
30                select
31                 p.no_perfil no_perfil
32                from
33                 perfil p,
34                 grupo_perfil grpp,
35                 usuario_grupo usrg
36                where
37                 usrg.sq_usuario='{$usuario['sq_usuario']}'
38                 and usrg.sq_grupo = grpp.sq_grupo
39                 and grpp.sq_perfil = p.sq_perfil
40                ");
41        while($rowPerfil = mysql_fetch_assoc($resPerfil)){
42            $usuario['perfil'][$rowPerfil['no_perfil']] = '1';
43        }
44        mysql_free_result($resPerfil);
45    }else{
46        morrer('Suas credenciais não são mais válidas. Efetue login novamente.','logout.php');
47    }
48    mysql_free_result($resAuth);
49 }
50
51  function temPerfil($no_perfil){
52    global $usuario;
53    if( is_array($usuario['perfil']) and array_key_exists($no_perfil,$usuario['perfil']) ){
54        return true;
55    }else{
56        return false;
57    }
58}
59
60 //
61  function logarAuditoria($no_atividade,$sq_row,$no_campo='',$tx_campo=''){
62    global $usuario;

    $sq_usuario = (int) $usuario['sq_usuario'];
    $no_atividade = trim(addslashes($no_atividade));
    $sq_row = (int) $sq_row;
    $no_campo = trim(addslashes($no_campo));
    $tx_campo = trim(addslashes($tx_campo));

    mysql_query("insert into
        log_auditoria(sq_atividade, sq_usuario, dt_data, sq_row, no_campo, tx_campo)
        values( (select sq_atividade from log_atividade where no_atividade='$no_atividade' limit 1), '$sq_usuario', now(), '$sq_row','$no_campo', '$tx_campo')
        ");
    if( mysql_error() )
        morrer('Erro na query insert into log_auditoria: ' . mysql_error());
}


?>

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

http://br2.php.net/session_start

session_start(); deve ser a primeira coisa a aparecer, antes dos includes... tenta ai

sua pagina ficaria

1 <?php
2 session_start();
3require_once 'morrer.php';
4 require_once 'conexao.php';
5

explicação,

session_start() deve ser usado antes de qlqr coisa ser mandada para o navegador, incluindo tags como <html>, <title>, <meta>, etc..., intão se esses includes chamam algo deste tipo, ou incluem arquivos que façam algo assim, sua session aqui nesse arquivo já não vai mais dar certo...

Editado por Scripter
Link para o comentário
Compartilhar em outros sites

  • 0

Continua dando o mesmo erro:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Inetpub\wwwroot\mti-prod\htdocs\consulta.php:2) in C:\Inetpub\wwwroot\mti-prod\htdocs\autenticacao.php on line 2

<?php
session_start();

require_once 'morrer.php';
require_once 'conexao.php';



$usuario['sq_usuario'] = '';
$usuario['no_login'] = '';
$usuario['logado'] = 0;
$usuario['perfil'] = '';

if( isset($_COOKIE["login"]) and isset($_COOKIE["senha"]) and $_COOKIE["login"] and $_COOKIE["senha"] ){
    setcookie("login", $_COOKIE["login"], time()+259200);
    setcookie("senha", $_COOKIE["senha"], time()+259200);
    $_SESSION["login"] = $_COOKIE["login"];
    $_SESSION["senha"] = $_COOKIE["senha"];
}

if( isset($_SESSION["login"]) and isset($_SESSION["senha"]) and $_SESSION["login"] and $_SESSION["senha"] ){
    $no_login = addslashes($_SESSION["login"]);
    $ps_senha = addslashes($_SESSION["senha"]);
    $resAuth = mysql_query("select sq_usuario,no_usuario from usuario where no_login='$no_login' and ps_senha='$ps_senha' and fg_excluido!=1");
    if( mysql_num_rows($resAuth) ){
        $rowAuth = mysql_fetch_assoc($resAuth);
        $usuario['logado'] = 1;
        $usuario['no_login'] = $no_login;
        $usuario['sq_usuario'] = $rowAuth['sq_usuario'];

        $resPerfil = mysql_query("
                select
                 p.no_perfil no_perfil
                from
                 perfil p,
                 grupo_perfil grpp,
                 usuario_grupo usrg
                where
                 usrg.sq_usuario='{$usuario['sq_usuario']}'
                 and usrg.sq_grupo = grpp.sq_grupo
                 and grpp.sq_perfil = p.sq_perfil
                ");
        while($rowPerfil = mysql_fetch_assoc($resPerfil)){
            $usuario['perfil'][$rowPerfil['no_perfil']] = '1';
        }
        mysql_free_result($resPerfil);
    }else{
        morrer('Suas credenciais não são mais válidas. Efetue login novamente.','logout.php');
    }
    mysql_free_result($resAuth);
}

....

Link para o comentário
Compartilhar em outros sites

  • 0

colega, ve tmb se os arquivos no include começam uma sessão la tambem, porque se começa, serão 2 sessões ao mesmo tempo, isso, se enterpretarmos e traduzirmos aquele erro, se encaixa diretamente...

++++++++++ EDIT ++++++++++++++

headers already sent (output started at C:\Inetpub\wwwroot\mti-prod\htdocs\consulta.php:2)

essa linha diz que a sessão já foi iniciada no arquivo consulta.php na linha 2, se esse arquivo incluir esse que você posto aqui, já vai da erro, porque são 2 sessões (ou mais) ao mesmo tempo...

Editado por Scripter
Link para o comentário
Compartilhar em outros sites

  • 0
http://br2.php.net/session_start

session_start(); deve ser a primeira coisa a aparecer, antes dos includes... tenta ai

sua pagina ficaria

1 <?php
2 session_start();
3require_once 'morrer.php';
4 require_once 'conexao.php';
5

explicação,

session_start() deve ser usado antes de qlqr coisa ser mandada para o navegador, incluindo tags como <html>, <title>, <meta>, etc..., intão se esses includes chamam algo deste tipo, ou incluem arquivos que façam algo assim, sua session aqui nesse arquivo já não vai mais dar certo...

... ou então:

if (!isset($_SESSION)) {

session_start();

}

Link para o comentário
Compartilhar em outros sites

  • 0

aproveitando esse post sobre session, irei colocar a minha duvida aqui:

Olá pessoal, boa noite!

Estou migrando um sistema que está em ASP e estou passando para PHP, porem estou apanhando na parte de SESSION.

Irei disponibilizar todos os links que contem o meu codigo na parte login e senha.

Segue:

index.php: http://pastebin.com/LZhuda55

logar: http://pastebin.com/H5RT5hLQ

logout.php: http://pastebin.com/FiRt2W3J

principal.php: http://pastebin.com/vSYkQNVc

validar.php: http://pastebin.com/NXTSKfVe

Pessoal, segue o endereco do meu sistema: http://scap.martinsrj.com/index.php

Obs.: o meu sistema está hospedado nesse endereco: http://www.kinghost.com.br/

PAra acessar o sistema o login é: admin e a senha: 123

Verifiquem que na pagina principal não aparece o nome de quem esta logado: Bem Vindo,

e automaticamente a pagina é direcionada automaticamente para a pagina login(index.php) novamente.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Realmente era isso... rsrsrsr

Agora uma pergunta. Toda vez que eu quiser atribuir um valor a uma session eu tenho que colocar esse comando: session_start(); ?

Abraços.

Na pagina aonde são criadas as sessões, percebi que o session_start() está comentado, talvez por isso não esteja gravando a sessão.

Link para o comentário
Compartilhar em outros sites

  • 0

Em todas as páginas em que são usadas sessões, seja para atribuir valor a uma, ou pegar o valor dela, tem que ter o session_start() sim.

Resumindo, se na página você usa $_SESSION seja para qualquer finalidade, é obrigatório o uso do session_start(), e de preferência na primeira linha do código, ;)

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
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...