Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal preciso muito da ajuda de vocês. Preciso acertar um script pra um cliente, mas ta f***. Já estou há horas e nada de funcionar...
da uma olhada
$qrUsuariosOnline = mysql_query("SELECT * FROM users_online INNER JOIN users ON users_online.login = users.login");
$cache = setcookie('meu_cookie', $login, time()+(7*24*3600), '/', '.meusite.com.br');
if(mysql_num_rows($qrUsuariosOnline) > 0){
while($ln = mysql_fetch_assoc($qrUsuariosOnline)){
$login = $ln['login'];
$qrUsers = mysql_query("SELECT * FROM users WHERE login = '".$login."'");
if(mysql_num_rows($qrUsers) > 0){
mysql_query('UPDATE users SET status = 1 WHERE login = "'.$login.'"');
}
}
}else{
mysql_query("UPDATE users SET status = 0 WHERE login = '".$_COOKIE['meucockie']."'");
}
funciona até o primeiro update, já no segundo, que deveria colocar o stutus do usuário como offline, não ta pegando.
Conto muito com a ajuda de vocês.
Abraço
Não, o nome está certo, foi meu erro de digitação. rs
Na boa, hoje minha mente não ta pegando direito... aff vou explicar o que estou fazendo pra se vcs podem incrementarem algumas idéias.
É simples, o usuário loga, na tabela users o status recebe 1. Quando ele sai ou o limite de tempo é atigindo, o status volta para 0. Os dados desse usuario apararecem tanto na tabela users quanto na tabela users_online, que mostra além dos usuários do sistema, os visitantes online no site.
Então, sugestões para dar um tranco na minha mente.
Então não faltou uma cláusula nesse SQL?
$qrUsuariosOnline = mysql_query( "SELECT * FROM users_online INNER JOIN users ON users_online.login = users.login" );
Você apenas faz um INNER, sempre vai ser verdadeira sua condição, não?
if( mysql_num_rows($qrUsuariosOnline) > 0 )
Vlw pela ajuda amigo, mas arrumei outro jeito pra resolver isso.
Fiz diferente
$qrIp = mysql_query("SELECT ip FROM users_online WHERE ip = '".$ip."'");
if(mysql_num_rows($qrIp) > 0){
mysql_query("UPDATE users SET status = 1 WHERE login = '".$login_."' AND time > '".(time() - ($tempom*60))."' ");
}
mysql_query('UPDATE users SET status = 0 WHERE ultimo_acesso < '.($timestamp - ($tempod*60)));
só tem que esperar uma hora, pra inativar o usuário. Mas vou aprimorando isso com o tempo.
Ah, se eu coloco a cláusula WHERE ali na meu select da erro quando uso o mysql_num_rows. Não consegui descobrir porque.
Por hra problema Resolvido!!
O nome do cookie está diferente, não é isso?