alissong 1 Denunciar post Postado Novembro 23, 2009 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
Dee 0 Denunciar post Postado Novembro 23, 2009 unset ($_SESSION["nome_da_sessao"]); ou session_unregister("nome_da_sessao"); Compartilhar este post Link para o post Compartilhar em outros sites
alissong 1 Denunciar post Postado Novembro 29, 2009 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
Dee 0 Denunciar post Postado Novembro 30, 2009 Pq está antes do session_start() Compartilhar este post Link para o post Compartilhar em outros sites