Ir para conteúdo

POWERED BY:

Arquivado

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

donkeykong__

[Resolvido] Como conserto o erro deste script

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

O nome do cookie está diferente, não é isso?

 

$cache = setcookie('meu_cookie', $login, time()+(7*24*3600), '/', '.meusite.com.br');

mysql_query("UPDATE users SET status = 0 WHERE login = '".$_COOKIE['meucockie']."'");

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 )

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!!

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.