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

Erro Ao Utilizar Sessions


Guest Paulo Eduardo

Pergunta

Guest Paulo Eduardo

Oi Pessoal...

seguinte, estou tentando fazer um sistema de Login, mas da erro ao inicializar as Sessions

Aqui esta o Código....

<?php

$conec;

$bco;

$conectou = 0;

//obtem os valores digitador

$login = trim($_POST["txlogin"]);

$senha = trim($_POST["txsenha"]);

//acessa ao banco de dados

include "conexao.php";

if($conectou){

$ins = "select * from user where nome = '$login' and senha = '$senha'";

$resp = mysql_query($ins,$conec);

$linhas = mysql_num_rows($resp);

if ($linhas == 0) {

//testa se a consulta retornou algum registro

echo "Usu&aacute;rio n&atilde;o encontrado";

echo "<a href=fmlogin.htm>logar</a>";

} else {

session_start();//Inicia Session

$_SESSION["login_usuario"] = $login;

$_SESSION["senha_usuario"] = $senha;

// redireciona par a pagina principal

header("Location: pagina_principal.php");

}

}

?>

O erro que aparece é o seguinte...

Warning: session_start(): Cannot send session cookie - headers already sent by

Se alguém puder Ajudarrr... Agradecooooooo

vlwwww

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 0

O erro está existindo por causa disso:

header("Location: pagina_principal.php");

Você está tentando redirecionar a página depois do cabeçalho já ter sido enviado para o navegador... isso gera o erro...

Acabei de corrigir, não existe o colchete...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

E como que eu vo passar para minha proxima página... já que não tem nd que direcione pra ela???

eu tirei e ainda continuou dando erro...

v se está certo por favor o código

<?php

ob_start();

$conec;

$bco;

$conectou = 0;

//obtem os valores digitador

$login = trim($_POST["txlogin"]);

$senha = trim($_POST["txsenha"]);

//acessa ao banco de dados

include "conexao.php";

if($conectou){

$ins = "select * from user where nome = '$login' and senha = '$senha'";

$resp = mysql_query($ins,$conec);

$linhas = mysql_num_rows($resp);

if ($linhas == 0) {

//testa se a consulta retornou algum registro

echo "Usuário não encontrado";

echo "<a href=fmlogin.htm>logar</a>";

} else {

session_start(); //Inicia Session

$_SESSION["login_usuario"] = $login;

$_SESSION["senha_usuario"] = $senha;

}

}

ob_end_flush();

?>

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

simples, remova os OB_ solicitados retireo session_start do meio e coloque ele no topo

(existe o conecta.php e alguns html antes que estãao causando este problema)

o redirecionamento com o JS faça:

echo "<script>top.window.location='pagina_principal.php';</script>";

<?php

session_start();

$conec;

$bco;

$conectou = 0;

//obtem os valores digitador

$login = trim($_POST["txlogin"]);

$senha = trim($_POST["txsenha"]);

//acessa ao banco de dados

include "conexao.php";

if($conectou){

$ins = "select * from user where nome = '$login' and senha = '$senha'";

$resp = mysql_query($ins,$conec);

$linhas = mysql_num_rows($resp);

if ($linhas == 0) {//testa se a consulta retornou algum registro

echo "Usuário não encontrado";

echo "<a href=fmlogin.htm>logar</a>";

} else {

$_SESSION["login_usuario"] = $login;

$_SESSION["senha_usuario"] = $senha;

}

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

Eu posso usar o Inluclude pra redirecionar???

Agora Funcionou essa parte de login.php

mas a proxima parte de valida_session.. da o mesmo erro

sabe dzr porque que acontece isso????

obs. esse login.php pegou depois que eu limpei todo o cache do meu navegador.. tem alguma coisa a v?

Link para o comentário
Compartilhar em outros sites

  • 0

Acontece o erro que voce não pode ter nenhum html antes de uma sessão, o cache não tem nada a ver é só pensar sempre que não pode existir nada escrito antes de session ou header

no outro faça a mesma coisa, coloque o session no inicio, se for um include coloque no script principal que vai valer para o script incluido.

Jair

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

Eu coloquei o start Session no inicio na pagina login... e prestou...

eu to usando pra redirecinar o Include"pagina principal"; .. tem algum problema???

e quando chego na miha página principal coloco um include "valida_session"

o meu código de validar é esse

<?

session_start();

if (isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"])) {

$login_usuario = $_SESSION["login_usuario"];

$senha_usuario = $_SESSION["senha_usuario"];

exit();

}else{

echo "Você não efetuou o login.";

exit();/*caso não tinha session.. quer dizer.. ele não logou*/

}

Dpois que executa essa página, não retorna para o meu Codigo página Principal....

e se eu abrir minha página principal sem logar, apare o erro Warning: session_start(): Cannot send session cache limiter - headers already sent

Sabem dizer porque?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

aí pessoal eu consegui ajeitar aqui...

quando vo logar.. ele passa pra página principal certinho..

o único problema é que quando eu entro na página principal de logar...

ele mostra a página e também mostra o seguinte erro

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Arquivos de programas\Apache Group\Apache2\htdocs\amazonprev\fmcadastro.php:6)

alguém sabe dzr porque?? não era apenas pra mostrar uma mensagem dzndo que não está logado?

abracos

Link para o comentário
Compartilhar em outros sites

  • 0

Você tem a página de login e a principal que é acessada logo após a login. A principal é apresentada juntamente com este erro. Para retirá-lo, coloque

<?php session_start(); ?>

na primeira linha do código desta página.

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

  • 0
Guest Paulo Eduardo

Colocando o session_start(), ele pega.. mas passando está pagina login para paginal principal, mas da página principal para qualquer outra página que eu coloque include "valida_session" aparece a seguinte mensagem....ou então na hora de entrar em qualquer página que estaja o include sem logar aparece essa mesma mensagem....

Warning: session_start(): Cannot send sessioon

vlw!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

está assim:

<?

session_start();

if (isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"])) {

$login_usuario = $_SESSION["login_usuario"];

$senha_usuario = $_SESSION["senha_usuario"];

}else{

echo "&lt;script>top.window.location='fmlogin.php';</script>";

exit();

}

então c acha que eu tenho que tirar os includes das minhas páginas e colocar o session_start(); ?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

Cara não sei o que está acontecendo oh...não deu certooo

bom... esse é meu codigo pra abrir a sesseio e receber os dados do login:

<?

session_start();

//obtem os valores digitador

$login = trim($_POST["txlogin"]);

$senha = trim($_POST["txsenha"]);

//acessa ao banco de dados

$cn = mysql_pconnect("localhost", "root", "teste");

$bco = mysql_select_db("lsm_teste");

$ins = "select * from user where nome = '$login' and senha = '$senha'";

$resp = mysql_query($ins,$cn);

$linhas = mysql_num_rows($resp);

if ($linhas == 0) {

//testa se a consulta retornou algum registro

echo "Usuário não encontrado";

echo "<a href=fmlogin.htm>logar</a>";

} else if($linhas ==1) {

$_SESSION["login_usuario"] = $login;

$_SESSION["senha_usuario"] = $senha;

include "fmcadastro.php";

}

?>

esse é o meu codigo pra validar as sessions ..."valida_session.php";

<?

session_start();

if (isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"])) {

$login_usuario = $_SESSION["login_usuario"];

$senha_usuario = $_SESSION["senha_usuario"];

//exit();

}else{

echo "&lt;script>top.window.location=fmlogin.php';</script>";

exit();

esse é minha "pagina principal" chamada fmcadastro

<?

include "valida_session":

include "cabecalho.php";

$equipamento = $_POST['txequipamento];

$modelo= $_POST['txmodelo'];

$tombamento = $_POST['txtombamento'];

$serial = $_POST['txserial'];

$setor = $_POST['txsetor'];

$gerencia = $_POST['txgerencia'];

$status = $_POST['txstatus'];

$usuario = $_POST['txusuario'];

$equipamento = $equipamento;

$modelo= $modelo;

$tombamento = $tombamento;

$serial = $serial;

$setor = $setor;

$gerencia = $gerencia;

$status = $status;

$usuario = $usuario;

$data = date("d/m/Y H:i:s");

?>

//continua aqui com html...

em fim se eu logar.. essa pagna fmcadastro entra normal..

mas se eu entrar nela sem logar... ou então redirecionar pra outra qualque que tenha o include "valida_session.hp"

da erro:

Warning: session_start(): Cannot send session

não sei porque não está prestando isso.. se puder me ajudar.. agradeco

Link para o comentário
Compartilhar em outros sites

  • 0

Na página principal, troque

include "valida_session":
por
include ("valida_session.php");
E no else da valida_session.php troque
else{
echo "&lt;script>top.window.location='fmlogin.php';</script>";
exit();
por
else{
echo "<script language='JavaScript'>window.location.href='fmlogin.php';</script>";
exit();

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

  • 0
Guest Visitante

Nada o parceiro... não pegou não....

se eu entro na pagina sem está logado.. era pra ele redirecionar.. não pra dar aquele erroo.., não sei o que está acontecendo..

mas td bem... se você tiver outra luz aí.. ajuda..

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, eu testei aqui e redirecionou. Talvez não esteja redirecionando por não estar fazendo o include. Onde está o include troque por

<?php
session_start();
if (isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"])) {
$login_usuario = $_SESSION["login_usuario"];
$senha_usuario = $_SESSION["senha_usuario"];


//exit();
}
else
    echo "<script language='JavaScript'>window.location.href='fmlogin.php';</script>";
?>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

E aí pessoal... eu testei e Funcionou também... mas antes eu Modifiquei o eu arquivo PHP.ini e depois deu um restart do apache....

Vlwwww.....

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,4k
×
×
  • Criar Novo...