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

Unset + $_session


Tito Tito

Pergunta

eu tava organizando um sistema de login (graças ao céu deu certo! laugh.gif ) e daí comecei a me preocupar com o logout. usei o unset() para desregistrar a sessão $_SESSION['user'].

o problema é q depois de ter feito o logout com o unset, não consigo mais faser o login!!!!! sad.gif

dae procurei no manual do php alguma informação e encontrei isso:

Descrição session_unset()

Se $_SESSION (ou $HTTP_SESSION_VARS para PHP 4.0.6 ou inferior) é usada, utilize unset()  para desregistrar a variável da sessão. Ex. unset ($_SESSION['varname]);.

NÃO elimina completamente $_SESSION com unset($_SESSION) enquanto esta desabilitará o registro de variáveis de sessão pela $_SESSION superglobal.

Isso quer dizer q não posso mais criar sessões? blink.gif

codigo original:

session_start();

if(isset($_SESSION['user'])){

unset($_SESSION['user']);

}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

O que diz é que você não pode destruir a array superglobal $_SESSION, mas nada te impediria de dar um unset($_SESSION['login']). Você estaria sumindo com somente um item da array.

Pelo visto você está fazendo certo...

O que acontece é o que? Em outra página ele não consegue se relogar ou você está tentando relogar o usuário na mesma operação em que ele é deslogado?

Link para o comentário
Compartilhar em outros sites

  • 0

o q acontece é q entro com um usuário (digito o username e a senha) na página index.php e clico enviar e vai para a página login.php que tem esse script:

<?php

include("class.php");

$info_title = "";

$info = "";

$page_title = "";

$user = $_POST['user'];

$senha = $_POST['senha'];

$banco = new db();

$resultado = mysql_query("select * from loja where usuario=$user' and senha='$senha'");

$num_linhas = mysql_num_rows($resultado);

if ($num_linhas == "0"){

$info_title = "Nome ou Senha Inválidos.";

$info = "Este nome de usuário ou senha não constam em nosso banco de dados. Clique <a href=javascript:history.go(-1)>aqui</a> para voltar.";

$page_title = "Loja Virtual - Erro no Login";

}else{

session_start();

$info_title = "Login realizado.";

$info = "Seu login foi realizado com sucesso. Clique <a href='index.php'>aqui</a> para retornar.";

$page_title = "Loja Virtual - Erro no Login";

    // caso contrario ele guarda na sessao os dados do usuario, o id e o nome do usuario

    $user = $_SESSION['user];

}

mysql_close()

?>

dae clico em voltar para ir ateh o index.php novamente, onde, se existisse a sessão $_SESSION['user'], trocaria os campos de login por uma mensagem de boas-vindas.

deu certo enquanto eu não fazia o logout, depois disso não dá mais sad.gif

vou procurar algum erro no meu script.

Link para o comentário
Compartilhar em outros sites

  • 0

problema resolvido!

acho q o problema tava aqui:

    // caso contrario ele guarda na sessao os dados do usuario, o id e o nome do usuario

    $user = $_SESSION['user'];

q devia estar assim:

    // caso contrario ele guarda na sessao os dados do usuario, o id e o nome do usuario

    $_SESSION['user] = $user;

valeu a ajuda gente, vou dar uma revisada nesse script de login e colocar aqui no site (se puder)

laugh.gif

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