Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alissong

Destruir Sessão Específica

Recommended Posts

Pessoal,

 

Uso esse comando para destruir a sessão ao sair do sistema, mas essa está destruindo todas as sessões. Exemplo se dois usuários estão usando o sistema se um sair primeiro a sessão do outro também está sendo destruída. Veja o código completo:

<?php
session_start();
session_destroy();
header("location: index.php");
?>

Verifica sessão

<?php 
// Iniciamos a sessão.
@ini_set('session.cache_expire', 60);
@ini_set('session.cookie_httponly', true);
@ini_set('session.use_only_cookie', true);
session_start ();
// Se for tentado alguma SID, destruímos a sessão e geramos outra.
if(strpos(strtolower ($_SERVER['REQUEST_URI']), 'phpsessid') !== false)
{
session_destroy ();
session_start ();
session_regenerate_id ();
}

// Verifica se existe os dados da sessão de login 
if(!isset($_SESSION["id_usuario"]) || !isset($_SESSION["nome_usuario"])) 
{ 
   // Usuário não logado! Redireciona para a página de login 
   include("index.php"); 
   exit; 
} 

?>

 

Então, pessoal como resolver esse probleminha.

 

 

Um abraço.

 

 

Alissong

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Por que ao colocar esse comando session_name('geral'); O sistema de login não funciona. Uso PHP 5.2.3 versão windows.

 

<?php 
// Inicia sessões
session_name('geral');
session_start(); 

// Conexão com o banco de bados
include('/var/www/html/compras/conexao/bdinc.php');
 
// Adicionamos uma função para verificar se o servidor executou addslashes() de forma
// transparente, senão executamos:
function checkslashes ( $valor)
{ if (
!
get_magic_quotes_gpc ())
{
return addslashes ( $valor);
} else {
return $valor;
}
}

// Recupera o nome 
$nome = isset($_POST["nome"]) ? addslashes(trim($_POST["nome"])) : FALSE; 

// Recupera a senha, a criptografando em MD5
$senha = strtolower($senha); 
$senha = isset($_POST["senha"]) ? base64_encode((trim($_POST["senha"]))) : FALSE; 

// Usuário não forneceu a senha ou o nome 
if(!$nome || !$senha) 
{ 
    echo "Você deve digitar sua senha e login !"; 
    exit; 
} 

/** 
* Executa a consulta no banco de dados. 
* Caso o número de linhas retornadas seja 1 o nome é válido, 
* caso 0, inválido. 
*/ 
$SQL = "SELECT * FROM usuarios where nome = '". checkslashes($nome) ."'"; 
$result_id = mysql_query($SQL,$conn) or die("Erro no banco de dados!"); 
$total = mysql_num_rows($result_id); 

// Caso o usuário tenha digitado um nome válido o número de linhas será 1.. 
if($total) 
{ 
// Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão 
    $dados = mysql_fetch_array($result_id); 

    // Agora verifica a senha 
    if(!strcmp($senha, $dados["senha"])) 
    { 
// TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário 
        $_SESSION["id_usuario"]   = $dados["codigo"]; 
        $_SESSION["nome_usuario"] = $dados["nome"]; 
        header("Location: logado.php"); 
        exit; 
    } 
// Senha inválida 
    else 
    { 
echo "<script language=JavaScript> window.alert('A senha está incorreta !'); </script>";
echo "<script>window.location = 'index.php'</script>"; 
exit; 
    } 
} 
// nome inválido 
else 
{ 
echo "<script language=JavaScript> window.alert('Usuários não encontrado !'); </script>";
echo "<script>window.location = 'index.php'</script>"; 
exit; 
} 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.