Gå til innhold

"Online" på websiden.


Anbefalte innlegg

Lurte på om det er vanskelig å lage et slikt online script på siden, der man ser hvor mange gjester og hvor mange brukere som er inne på siden?

 

Tenker det er enkelt å legge til etterhvert som de kommer inn på siden, men hvordan gjør man slik at de blir fjernet da de lukker browseren?

Lenke til kommentar
Videoannonse
Annonse

<mode="flisespikkete">

 

hva er "å være inne på siden"

 

hvordan kan du vite at en bruker sitter og titter på din side? Det tar bare et par sekunder å hente ned en side. Om han sitter og leser på den i 10 minuter eller om han lukker den med en gang kan du umulig vite. Viktig å være klar over. En protokollbegrensning i HTTP.

 

<mode="hjelpsom">

 

lag en tabell med URL og tidspunkt og brukernavn, hvor du registrerer alle sidetreff, så kan du hente ut foreksempel alle brukernavn fra siste 5 minutter og anta at de sitter og browser på sidene.

Lenke til kommentar
Hva med noe slikt?

Om ønskelig kan du legge ut $timer og $filename i egen fil og legge disse til via include.
------------------------
<?php
$timer = 2; //Hvor ofte siden skal oppdateres med brukere online, i minutter.
$filename = "logg2.txt"; // Filen hvor all data skrives til.

if (!$datei) $datei = dirname(__FILE__)."/$filename";
$time = @time();
$ip = $REMOTE_ADDR;
$string = "$ip|$time\n";
$a = fopen("$filename", "a+");
fputs($a, $string);
fclose($a);

$timeout = time()-(60*$timer);

$all = "";
$i = 0;
$datei = file($filename);
for ($num = 0; $num < count($datei); $num++) {
$pieces = explode("|",$datei[$num]);

if ($pieces[1] > $timeout) {
$all .= $pieces[0];
$all .= ",";
}
$i++;
}
$all = substr($all,0,strlen($all)-1);

$arraypieces = explode(",",$all);

$useronline = count(array_flip(array_flip($arraypieces)));

if ($useronline == 0) {
$useronline = 1;
}
echo $useronline;

$dell = "";
for ($numm = 0; $numm < count($datei); $numm++) {
$tiles = explode("|",$datei[$numm]);
if ($tiles[1] > $timeout) {
$dell .= "$tiles[0]|$tiles[1]";
}
}

if (!$datei) $datei = dirname(__FILE__)."/$filename";
$time = @time();
$ip = $REMOTE_ADDR;
$string = "$dell";
$a = fopen("$filename", "w+");
fputs($a, $string);
fclose($a);
?>
Lenke til kommentar
hva er "å være inne på siden"

 

hvordan kan du vite at en bruker sitter og titter på din side?

 

Det var jo akkurat det eg spurde om hvordan man lager. Har sett sider med oversikt over hvor mange brukere som er på siden. Forumet her har jo det også; hvilke brukere leser dette emnet akkurat nå, og hvor mange gjester...

Endret av _TT_
Lenke til kommentar

_TT_: dette kan man per def umulig vite pga hvordan HTTP fungerer.

 

selvom det står her at du leser denne tråden kan jeg umulig vite om du har html fra denne url'en oppe i din nettleser eller ikke. HTTP sender bare over et dokument og bryter forbindelsen, ikke noen form for kontinuerlig forbindelse som blir brutt først når du surfer videre.

Lenke til kommentar
selvom det står her at du leser denne tråden kan jeg umulig vite om du har html fra denne url'en oppe i din nettleser eller ikke. HTTP sender bare over et dokument og bryter forbindelsen, ikke noen form for kontinuerlig forbindelse som blir brutt først når du surfer videre.

 

Det går ikke, men det er sider som viser det? :ermm:

 

Forumet her baserer seg, som forslaget mitt, på php. Men en vil ha behov for å legge inn en "tidsluke"

Tidsluke?

Endret av _TT_
Lenke til kommentar
Det går ikke, men det er sider som viser det?  :ermm:

 

Du kan lage et javascript for å vite når folk går ut av siden, men mange har ikke javascript enabeld.

 

Det er fult mulig å lage et slik script, men de bygger ofte på at en bruker "er" på side i 5 min etter siste åpning av siste side. Dvs. en bruker som har forlatt siden ser fortsatt ut som den er der i f.eks. 5 min etter denne brukeren åpnet forrige side.

Lenke til kommentar

_TT_: hva en side sier at den viser er vel uvesentlig?

 

Ingenting iveien for at jeg kan si at Kong Harald er inne og ser på siden min nederst på siden.

 

Man bruker en antagelse, skissert slik jeg sier først og implementert (sannsynligvis) slik am3k sier, basert på et tidsvindu.

 

foreksempel kan man anta at 5 minutter besøkningstid. Eller man kan konsekvent vise siste side en registrert bruker var inne på som den siden han er på nå.

Lenke til kommentar

Slike online saker baserer seg gjerne på når en person, eller mer korrekt agent, i form av en nettleser som explorer mozilla eller opera, går inn på siden din så blir den registrert.

Du regnes da som en som er "online".

Siden man ikke kan vite om en person faktisk er online setter man som oftest et tidsrom hvor man regner brukeren som fremdeles "online" på siden. Når dette tidsrommet har gått ut avregistreres man som "online". For hver gang brukeren klikker på en link på siden setter man tidsrommet fra det tidspunktet han klikket på linken i.

 

Det viser ikke hvor mange som faktisk er online, men det gir en viss pekepinn ut i fra noen besteme antagelser.

 

Om du skjønner hva jeg mener.

 

Er det vanskelig å lage, nei ikke noe særlig for et enkelt et.

 

Edit: Brukte vist litt for lang tid på å poste så torbjørn kom meg i forkjøpet, jaja.

Endret av Findus
Lenke til kommentar

Et slikt system er lett å lage, du har sikkert en teller på siden din som registrerer tide de åpnet en side. Hvis du ikke har det er det også lett å lage. Tell antall rader der tiden er mindre enn 5 min siden (5 min er kanskje litt lenge?) og grupper etter f.eks. id - eller du kan telle unike ip adresser de siste 5 minuttene.

 

For å få logget inn kan du f.eks. legge til et felt i tabellen eller linke det sammen med ip adressene som har logget seg inn.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...