Relação de usuários logados no sistema

Enviada por Ney Trevas 
Ney Trevas
Relação de usuários logados no sistema
02 de January de 2012 às 07:16PM
Galera,
Como todo iniciante, estou lendo demais sobre cookie e sessions, mas ainda não peguei o jeito da coisa.
Quero impedir que um usuário logue com sua senha de duas máquinas diferentes (ex: ele e seu irmão usando o mesmo nome de usuário e senha).
Criei uma session USUARIOS como array. Achei que poderia pegar cada usuário logado e colocar seu nome nessa session (sempre no próximo índice). O que percebo é que cada um que entra, é criada uma session diferente e portanto eu não tenho uma session comum para armazenar todos os usuários. Li alguma coisa sobre o uso de cookies e também que eles dão problema no IE e no Netscape.
Não sei se fui claro, mas o desejo é verificar no momento do login, se o usuário já realizou o login.

Obs: A verificação de usuário e senha (válidos) está funcionando perfeitamente, só não consigo acumular os usuários logados naquele momento no site.

Minha pergunta é: Existe uma session comum? Como gravar dados nela? e por aí vai.

Abs e Feliz 2012 a todos.
Diego R. Mengarda
Re: Relação de usuários logados no sistema
02 de January de 2012 às 07:37PM
Amigo, sessions e cookies são gravadas no computador da pessoa que acessa o sistema.
O idela seria gravar cada acesso em 1 banco de dados ou arquivo txt.

Sobre bloquear o acesso simultaneo ao sistema, você pode criar 1 campo do tipo boolean na tabela dos usuários e quando a pessoa logar no sistema tu muda para true, se alguem entar logar com o mesmo usuário você terá uma resposta que já está true nesse campo e com isso poderá bloquear o acesso.
Ney Trevas
Re: Relação de usuários logados no sistema
02 de January de 2012 às 07:44PM
Beleza Diego,
Acho que assim resolve o problema. Entretanto fiquei com outra dúvida. Como voltar para false quando ele fechar o Browser?. Se for através de um botão logout, beleza, mas se ele fechar o Browser sem dar logout?
Abs.
Diego R. Mengarda
Re: Relação de usuários logados no sistema
02 de January de 2012 às 07:51PM
acho que isso pode te ajudar

http://forum.imasters.com.br/topic/420204-executar-funcao-ao-fechar-pagina-php-ajax-jquery/

;)
Ney Trevas
Re: Relação de usuários logados no sistema
02 de January de 2012 às 09:12PM
Diego, obrigado pela ajuda, mas parece que não consigo colocar para executar.

Coloquei o script
<script type="text/javascript">
$(window).unload(function() {
$.ajax( {
url: "logout.php"
});
});
</script>


na página (na versão final, penso que devo colocar em todas as páginas, uma vez que ele pode sair do site em qualquer página) e criei um arquivo logout.php:


<?php
session_start();
include('conexao.php');
$usuariologout = $_SESSION["Usuario"];
echo "<script language='Javascript'>alert('Faremos um logout automático para este usuário - Até a próxima')</script>";
mysql_query("update cadusu set logado='não' where userid='".$usuariologout."'") or die ("Não foi possível alterar dados do usuario. ".mysql_error());
?>

Ele não executa nem o alert.
Abs
Diego R. Mengarda
Re: Relação de usuários logados no sistema
02 de January de 2012 às 10:31PM
esse script javascript é em jquery
você deve incluir a biblioteca jquery para ele poder funcionar.
Ney Trevas
Re: Relação de usuários logados no sistema
03 de January de 2012 às 06:29PM
Fiz de tudo e não funcionou.
Resolvi colocar um botão de logout e se o usuário não der logout, verifico se já passou ao menos 30 minutis desde o último logon e libero um novo logon. Caso o tempo desde o ultimo logon não seja superior a 30 min, ele não conseguirá fazer novo logon.
Mesmo assim obrigado.
Diego R. Mengarda
Re: Relação de usuários logados no sistema
03 de January de 2012 às 09:52PM
Não vamos desistir hehe
abra seu sistema com o firefox e apert ctrl+shift+j
para abrir o debuguer, veja se aparece algum erro no javascript após entrar no sistema
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.