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

Session Com Problemas


Flávio_rj

Pergunta

Olá,é o seguinte meu site utiliza sessions e últimamente um grande números de usuários andam reclamando que tem de fazer várias vezes o Login para entrarem no site..isso eu não sei porque acontece...alguém faz ideia do porque isto está acontecendo...??será que devo utilizar antes do session_start(); o session_destroy(); será que isso melhora..???

Obrigado pela atenção!!

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
mas, error, com o session precisa estar com o cookies habilitado???

não use o session_destroy().. somente na pag pra efetuar o logout..

deve ser isso...

Sim e não...

Aí entra o fator propagação do id... que é como o usuário fica sabendo qual sessão é dele..

As sessões recebem um nome aleatório...e são guardadas em um mesmo diretório, então o usuário que criou aquela sessão tem que ter como saber qual sessão é dele, e qual não é...

Essa id de sessão [ PHPSESSID ] é passada, geralmente, via cookie; esse é o método mais seguro. Mas quando o usuário que acessa a página está com os cookies desabilitados, ou o programador desabilitou de propósito, essa id é passada via Query String ...

Isso acontece quando a gente vê aquele SID, PHPSESSID, SESSID, na barra de endereços... é isso que aquilo é: o indicador da sua sessão. Nesse caso da Query String, é fácil perder esse id; se o usuário entrar em uma página digitando o endereço, por exemplo, ele perde o ID, logo, precisa se logar de novo.

Pode ser esse o problema... cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Eu já tive esse problema em meus sistemas... e no meu site também...

Por um acaso você tá usando o session_register();?

Se estiver pode ser isso tenta substituir isso por variaveis de sessão...

$_SESSION[];

sak?

bem melhor..

vou te passar um exemplo...

<? session_start();

$login = isset($_POST['login]) ? addslashes(trim($_POST['login'])) : FALSE;

$senha = isset($_POST['senha']) ? md5(trim($_POST['senha'])) : FALSE;

if(!strcmp($senha, "02ed122da61b2ff18deac54a72f449e7") && !strcmp($login, "admin"))

    {

        // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário

        $_SESSION["nome_usuario"] = ("administrador");

        header("Location: opcoes.php");

        exit;

    }

else{

header("Location: invalida.php");

    exit;

}

?>

Simples demais.... ph34r.gif

Qualquer coisa avisa ae beleza?

Link para o comentário
Compartilhar em outros sites

  • 0

beleza... eu te explico...

É o seguinte...

É só uma forma diferente de escrever if...

quer ver...

Isso:

$login = isset($_POST['login']) ? addslashes(trim($_POST['login'])) : FALSE;

É amesma coisa que isso:

if(isset($_POST['login]) ){

addslashes(trim($_POST['login'])

}

else

{

FALSE;

}

o addslashes é pra adicionar barras invertidas para a variavel.

E quando você coloca o : indica que você está começando um else.

Link para o comentário
Compartilhar em outros sites

  • 0
Eu já tive esse problema em meus sistemas... e no meu site também...

Por um acaso você tá usando o session_register();?

Se estiver pode ser isso tenta substituir isso por variaveis de sessão...

$_SESSION[];

sak?

bem melhor..

vou te passar um exemplo...

<? session_start();

$login = isset($_POST['login]) ? addslashes(trim($_POST['login'])) : FALSE;

$senha = isset($_POST['senha']) ? md5(trim($_POST['senha'])) : FALSE;

if(!strcmp($senha, "02ed122da61b2ff18deac54a72f449e7") && !strcmp($login, "admin"))

    {

        // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário

        $_SESSION["nome_usuario"] = ("administrador");

        header("Location: opcoes.php");

        exit;

    }

else{

header("Location: invalida.php");

    exit;

}

?>

Simples demais.... ph34r.gif

Qualquer coisa avisa ae beleza?

ando tendo uns problemas com SESSION tambem veja :

http://scriptbrasil.com.br/forum/index.php...pic=27842&st=15

to ficando maluco !!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0
será que devo utilizar antes do session_start(); o session_destroy(); será que isso melhora..???

Bom, cara... pra utilizar o session_destroy(), você tem que estar com a sessão iniciada... então, acho que não resolveria.

Como é o script que você fez? Tipo, na autenticação, verificação se está logado, ... ?

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