Ir para conteúdo

POWERED BY:

Arquivado

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

alysson122010

Como mostrar status de online o offline

Recommended Posts

mais como faço para ele inserir um quando tiver logado e atualizar pra zero quando sai como funciona porque uso session quando loga ai não tenho ideia como fazer pra inserir o status quando logar.

como faço?

 

 

Meu codigo de login:
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
$_SESSION['PrevUrl'] = NULL;
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);
$logoutGoTo = "login";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de tudo voce devera criar no seu banco de dados uma tabela chamado usuarios_online dentro dela havera 3 campos:

 

 

id- int/11/chave primario/auto incremento

id_usuario - int/11

data - varchar/12

 

entao no seu codigo de login assim que a session é criado voce deverá inserir no banco de dados mostrado acima o id do usuario e a data de hoje! dai para saber se o usuario esta logado ou nao, voce coloca um comando no codigo php que busque no banco de dados se existe um usuario com id_usuario igual ao seu ou outro se existir ele mostra a imagem de usuario logado!



agora no codigo para o usuario se deslogar(logout) voce faz o inverso! voce deleta o campo da tabela usuarios_online aonde o id_usuario for igual ao seu id!



qualquer duvida na implementacao em seu codigo retorne a este topico,que iremos ajuda-lo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegui fazer automatico ta osso ver

eu tenho a trabela

castrado com campos:

id int/11/chave primario/auto incremento

nome (Text)

email (Text)

login (Text)

senha (Text)

status (Text)

 

ai tipo no meu codigo de logar que é esse :

 

if (!isset($_SESSION)) {

session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['login'])) {
$loginUsername=$_POST['login'];
$password=$_POST['senha'];
$MM_fldUserAuthorization = "nivel";
$MM_redirectLoginSuccess = "painel";
$MM_redirectLoginFailed = "errologin";
$MM_redirecttoReferrer = false;
mysql_select_db($database_config, $config);
$LoginRS__query=sprintf("SELECT login, senha, nivel FROM cadastro WHERE login=%s AND senha=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $config) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'nivel');
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
Eu queria que quando logar-se o status fica-se 1
e quando deslogar-se o status fica-se 0
porque na imagem já sei como vou fazer vou da uma condição se tiver status 1 eu deixo a bolinha verde se o status for 0 eu deixo a bolinha vermelha
codigo deslogar-se
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
//to fully log out a visitor we need to clear the session varialbles
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
$_SESSION['PrevUrl'] = NULL;
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);
$logoutGoTo = "login";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse campo status (Text) pode ser int, vai gravar 0 ou 1. Quando logar, dê um update no campo status gravando 1. Quando sair, grave 0. É interessante verificar se as sessões referente ao login estão definidas, porque se fechar o navegador, ao abrir novamente o usuário não estará online. Então, tem que verificar se a sessão existe, se não existir, dê um update atualizando o valor para 0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É eu usei esse seu código ai pra logar e deu certo o status mudo para 1.

Mais no deslogar-se ele ta dando um erro

 

No data base selected

 

Ver ai acho que fiz algo de errado acho que não ta selecionando o banco para que altere o status porque no caso do login ele seleciona o bando de dados mais o deslogar-se nao ver meu código:

 

// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
//to fully log out a visitor we need to clear the session varialbles
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
$_SESSION['PrevUrl'] = NULL;
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);
$sql = "UPDATE cadastro SET status='0' WHERE id = 1";
$qr = mysql_query($sql) or die(mysql_error());
$logoutGoTo = "login";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}

}

 

Me ajude ver como arrumo isso pra quando deslogar-se ele ficar status zero e quando sair sem deslogar-se porque to perdido nessa parte do deslogar-se agora. Porque no login vc ja me ajudo ai consegui fazer agora to precisando de sua ajuda pra esse deslogar-se pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

um ok pera vo tentar aqui deixo vcs informado

 

 

ixeee aparece tanto erro to doidoooooooooo aqui nuss erro demais eu nao to conseguindo

 

 

 

 

Mesmo ele selecionando vejam da que não ta selecionando

 

 

 

<?php
//initialize the session
if (!isset($_SESSION)) {
session_start();
}
// ** Logout the current user. **
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
//to fully log out a visitor we need to clear the session varialbles
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
$_SESSION['PrevUrl'] = NULL;
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);
$logoutGoTo = "login";
$tudo = mysql_query("SELECT * FROM cadastro WHERE id = 1");
$sql = "UPDATE usuarios SET status='0' WHERE id = 1";
$qr = mysql_query($sql) or die(mysql_error());
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o que eu aconselho... Crie um campo na tablela com o nome ultima acao ai nela cria um campo do tipo date time, dentro do teu sistema crie um jquery que enquanto ele tiver logado vai atualizando o tempo no banco de sei la de 5 em 5 segundos ai na area de status faiz a logica se a utima reação do cara for menor que a data atual menos 5 ou o numero que vc determina ele fica como offline !! Simples e da menos trabalho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem conexao so que eu peguei so a parte do codigo olha a conexao

 

<?php require_once('Connections/config.php'); ?>

ai tenho o arquivo dentro dessa pasta

 

mais ele da esse erro acho que é porque corta alguma coisa ai ele nao funfa

 

ver o original

 

 

<?php require_once('Connections/config.php'); ?>

 

<?php
//initialize the session
if (!isset($_SESSION)) {
session_start();
}
// ** Logout the current user. **
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
//to fully log out a visitor we need to clear the session varialbles
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
$_SESSION['PrevUrl'] = NULL;
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);
$logoutGoTo = "login";
$tudo = mysql_query("SELECT * FROM cadastro WHERE id = 1");
$sql = "UPDATE usuarios SET status='0' WHERE id = 1";
$qr = mysql_query($sql) or die(mysql_error());
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>
nesse codigo ai que vc me passa onde posso colocar ele dentro desse codigo porque eu ja tentei de tudo e ele da esse erro acho que to fazendo coisa errada porque so amador ainda na area :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, isso não é uma conexão ao banco de dados.

O que o allex_carvalho quer dizer, é que vc não ta mandando conectar assim :

 

$conectar = mysql_connect("localhost","usuario","senha")or die("Erro ao se conectar com o banco de dados...");

mysql_select_db("Nome do Banco",$conectar);

 

 

E em todas as querys mysql deve-se ter essa estrutura !!!

 

mysql_query("SINTAXE SQL",$conectar);

 

Ai para fechar a conexão usa o:

mysql_close($conectar);

 

 

...

 

Espero que ajude !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma outra abordagem é através da utilização de um campo datetime.

 

Ao usuário se autenticar - e também a cada ação - você renova o campo com uma data mais atual.

 

Para saber o número de usuários online, apenas faça uma busca de todos os usuários cujo o campo possui um intervalo menor que 10 minutos (ou o tempo que escolher) em relação ao horário atual.

 

Abraço.

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.