Utilizadores Online em PHP

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Utilizadores Online em PHP

Mensagempor aDoF96 » Domingo Fev 18, 2007 18:42

Ora boas para todos!

Ando eu aqui a fazer um sistema daqueles que mostra o número de visitantes de o site mas não só, também o IP de cada um e a página do site em que ele se encontra.

Bom, os dados eu já consegui extrair, guarda-los numa BD e visualizar e tudo isso. Agora a minha questão era, tipo, como faço para depois descobrir quando o utilizador sai do site? :roll:

Eu até estava a pensar, quando guardo a info de um utilizador na BD, guardava também a hora e a partir disso fazia para ver se ele já estivesse naquela página há mais de X minutos, se sim apagava a info da BD porque já deveria ter saído do site (tipo expirar a sessão).

Só que isto é pouco eficiente, porque ele pode não ter saído do site, apenas ter ficado um pouco mais naquela página. Alguém sabe uma maneira de saber quando ele sai do site?
aDoF96
Membro de Prata
Membro de Prata
 
Mensagens: 249
Registado: Domingo Set 26, 2004 14:34
Localização: Mozelos - S.M. Feira

Mensagempor CR9 » Domingo Fev 18, 2007 20:05

Aproveito o topico, também andava a procura de qq coisa em php que mostrasse quantos utilizadores estao a visitar a pagina, nada mais..
Não sabe assinar
CR9
Membro Vitalício
Membro Vitalício
 
Mensagens: 2393
Registado: Sábado Ago 27, 2005 15:48

Mensagempor aDoF96 » Domingo Fev 18, 2007 20:26

CR9 para isso só sei como fazer mas utilizando um .txt e não em SQL, pois porque preciso de saber como se sabe que o utilizador já não está mais no site..
Aqui fica, se quiseres:

• Primeiro crias o ficheiro online.txt
• Depois crias o ficheiro online.php e colocas este código:

<?
$datafile = "./online.txt"; //Este é o directório onde está o online.txt
$now = time();

$write=$_SERVER[REMOTE_ADDR]|$_SERVER[HTTP_REFERER]|$now|\n";
$file = file($datafile);

for($i=0;$i<count($file);$i++)
{
$visitdata = explode("|", $file[$i]);
if($visitdata[2] > $past && $visitdata[0]!=$_SERVER[REMOTE_ADDR])
{
$write .= "$visitdata[0]|$visitdata[1]|$visitdata[2]|\n";
}
}

if($ofile = @fopen($datafile,"w")){
@fputs ($ofile, $write);
@fclose($ofile);
} else {
echo "YOU NEED TO CHMOD $datafile TO 666 OR 777";
}

$count = count(file($datafile));

if($count > 1)
{
$visitors = str_replace("<online>","$count","<online> utilizadores online");
} else {
$visitors = str_replace("<online>","$count","1 utilizador online");
}

echo ("document.write('$visitors');");
?>


• Depois na página onde queres que apareça o nr. de visitantes é so pores o seguinte código:

<script src="online.php"></script>


E claro que aqui considera-se que o ficheiro esteja no mesmo directório, senão é só por o directório do ficheiro. Espero que te sirva :wink:

EDIT: Já agora, se quiseres, tem aqui um tutorial para isso em SQL, só que tem a tal cena de apagar ao fim de X minutos.

Quanto ao outro assunto, anyone!? :roll:
aDoF96
Membro de Prata
Membro de Prata
 
Mensagens: 249
Registado: Domingo Set 26, 2004 14:34
Localização: Mozelos - S.M. Feira

Mensagempor CR9 » Segunda Fev 19, 2007 10:35

Já fiz isso, e depois onde supostamente iria aparecer a tal informação só aparece isto:

Código: Seleccionar todos
<script src="online.php"></script>


Ja pus o online.php e online.txt no directorio do site. Já agora meto alguma coisa no online.txt?

Cumprimentos.
Não sabe assinar
CR9
Membro Vitalício
Membro Vitalício
 
Mensagens: 2393
Registado: Sábado Ago 27, 2005 15:48

Mensagempor aDoF96 » Segunda Fev 19, 2007 12:47

Não, isso deixas em branco. Ele depois é que preenche conforme tenha visitantes no site.

Mas tipo estás a por isso na parte do código e não no design, certo?
aDoF96
Membro de Prata
Membro de Prata
 
Mensagens: 249
Registado: Domingo Set 26, 2004 14:34
Localização: Mozelos - S.M. Feira

Mensagempor CR9 » Segunda Fev 19, 2007 13:08

aDoF96 Escreveu:Não, isso deixas em branco. Ele depois é que preenche conforme tenha visitantes no site.

Mas tipo estás a por isso na parte do código e não no design, certo?


Sim estou a pôr por código, mas aquilo tem de ficar em alguma parte do site (design) certo?

Cumps.
Não sabe assinar
CR9
Membro Vitalício
Membro Vitalício
 
Mensagens: 2393
Registado: Sábado Ago 27, 2005 15:48

Mensagempor asturmas » Segunda Fev 19, 2007 13:13

Tens de dar chmod 777 ao .txt para ele escrever o nº de visitantes
asturmas
Membro Vitalício
Membro Vitalício
 
Mensagens: 4073
Registado: Quinta Set 14, 2006 16:50
Localização: localhost


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 6 visitantes

cron