---
title: "Bästa sätt för online/offline"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/98909-bästa-sätt-för-online-offline"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Smultron"
published: "2004-03-07T19:31:01.000Z"
updated: "2006-03-21T13:35:12.000Z"
replies: 16
views: 858
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/98909-bästa-sätt-för-online-offline"
---

# Bästa sätt för online/offline

## #1 — Smultron, 2004-03-07T19:31Z

Hejsan!
Jag joibbarp å en portal och jag har haft ett flertal lösningar på hur jag ska göra en method som visar antalet användare som är online och också Vilka som är online...

Användarna loggar in och en sessions skapas för användaren. 

Vad är det bästa sättet för att visa om man är online eller offline på? 
Någon som har förslag?

Permalänk: https://www.webforum.nu/p/98909

## #2 — Melea, 2004-03-07T19:34Z

Mja, varje gång en användare loggar in kan du ju uppdatera den spesifika användarens Status till "Online" och när personen loggar ut uppdaterar du den till "Offline"...

Sen om folk inte loggar ut kan du lösa det med att kontinuerligt (varje gång någon uppdaterar sidan) logga ut personer som inte varit aktiva från och med 30 minuter tillbaka eller dylikt.

Fixa alltså en datetime kolumn i databasen som uppdateras varje gång användaren uppdaterar sidan.

Permalänk: https://www.webforum.nu/p/1293797

## #3 — Smultron, 2004-03-07T20:26Z

Försämrar inte det där prestandan en aning?

Permalänk: https://www.webforum.nu/p/1293819

## #4 — Smultron, 2004-03-07T20:31Z

du menar att jag gör en funktion som kollar igenom alla användare också...

Permalänk: https://www.webforum.nu/p/1293828

## #5 — WiZzLeR, 2004-03-08T06:23Z

en tabell med timestamp, användare etc...
när användaren surfar runt på sidan så uppdateras timestampen och senaste timestap hämtas. när användaren har slutat surfa runt på sidan så dör timestampen efter X antal sekunder.

Permalänk: https://www.webforum.nu/p/1293969

## #6 — Smultron, 2004-03-08T09:36Z

hmm...timestamp!?

utveckla...

jag tänkte mer att jag skapar två nya fält i "user" tabellen...

status och status_time

när man loggar in sätts status till 1 och så sätter man status_Time till datumet och tiden som det var

sen gör man en funktion som alla användare gör när de surfar runt på sidan, som kollar alla användar fält i databasen där status är 1 och så kollar den om status_time är äldre än 20 min och i sånna fall sätts status till 0 också...

på så sätt så kan man väl räkna alla som är inloggade lätt och man får också ett sätt att kolla vilka användare som är inloggade..

det dåliga med det är väl att det blir söligt att kolla igneom databasen varje gång någon uppdaterar sidan...

Permalänk: https://www.webforum.nu/p/1294022

## #7 — Melea, 2004-03-08T09:46Z

Precis så jag menade. Och varje gång den spesifika användaren uppdaterar sidan sätts status_time till date("Y-m-d H:i:s");

Permalänk: https://www.webforum.nu/p/1294029

## #8 — Smultron, 2004-03-08T11:31Z

mm exakt...men varje användare kollar igenom hela databasen varje gång sidan uppdateras med.

Permalänk: https://www.webforum.nu/p/1294082

## #9 — Melea, 2004-03-08T12:27Z

Jo sant, kan vara lite krävande... men alltid så jag gjort :)

Någon annan som har förslag på hur man kan gå till väga?

Permalänk: https://www.webforum.nu/p/1294117

## #10 — WiZzLeR, 2004-03-08T13:13Z

> **Smultron skrev:**
>
> hmm...timestamp!?
> 
> utveckla...
> 
> jag tänkte mer att jag skapar två nya fält i "user" tabellen...
> 
> status och status_time
> 
> när man loggar in sätts status till 1 och så sätter man status_Time till datumet och tiden som det var
> 
> sen gör man en funktion som alla användare gör när de surfar runt på sidan, som kollar alla användar fält i databasen där status är 1 och så kollar den om status_time är äldre än 20 min och i sånna fall sätts status till 0 också...
> 
> på så sätt så kan man väl räkna alla som är inloggade lätt och man får också ett sätt att kolla vilka användare som är inloggade..
> 
> 
> det dåliga med det är väl att det blir söligt att kolla igneom databasen varje gång någon uppdaterar sidan...

en unix timestamp, [time();](http://se2.php.net/manual/sv/function.time.php) . det är ett mycket enkelt sätt att leka med tid matematiskt. =) iaf jag kan skriva ihop ett script som jag tror skulle fungera så fort jag kommer hem. just nu sitter jag @ plugget och drygar. =)

jag har ett exempel på <http://www.klanace.com/?s=online> som jag har gjort.

Permalänk: https://www.webforum.nu/p/1294132

## #11 — Mungo, 2004-03-08T14:15Z

Lägg de som är online i en egen databastabell och kolla bara igenom den vid varje sidladdning enligt samma princip som ovan...

Permalänk: https://www.webforum.nu/p/1294170

## #12 — Smultron, 2004-03-09T20:30Z

jo det är bra...thx

Permalänk: https://www.webforum.nu/p/1294937

## #13 — Pedda, 2004-03-09T20:41Z

Kan ju visa lite av den koden jag använder för online som ett exempel. Utav detta så får jag ut vilka som är inloggade, hur många gäster och var alla är på sidan. Men ska man bara ha hur många som är online så kan man ju förenkla det en del.

```php
$now = time();

// Radera äldre än timeout_online
$query = ('DELETE FROM online WHERE logged<'.($now-300).' OR ident=\''.addslashes($cookie['username']).'\' OR ident=\''.get_remote_address().'\'');
mysql_query($query);
// Lägg till en ny. username och user_id om inloggad; ip och user_id=0 annars, lägger även till sidans namn ($page) och eventuellt id ($mid=tråd id, eller liknande)
$sql = ('INSERT INTO online (user_id, ident, logged, page, mid) VALUES(\''.$user_id.'\', \''.$ident.'\', '.$now.', \''.$page.'\', \''.$mid.'\')');
mysql_query($sql);
```

Permalänk: https://www.webforum.nu/p/1294952

## #14 — Fuel, 2006-03-21T13:23Z

Pedda ... visst borde det räcka med att bara radera alla som har " timeout " ?

```php
$usr_timeout = $now-300;
// Radera äldre än timeout_online
$query = ("DELETE FROM online WHERE logged < $usr_timeout");
```

Permalänk: https://www.webforum.nu/p/1785827

## #15 — Melea, 2006-03-21T13:30Z

> **Fuel skrev:**
>
> Pedda ... visst borde det räcka med att bara radera alla som har " timeout " ?
>
>
> ```php
> $usr_timeout = $now-300;
> // Radera äldre än timeout_online
> $query = ("DELETE FROM online WHERE logged < $usr_timeout");
> ```

Du lyckades bumpa en tråd som är över två år gammal, grattis! ;)

Permalänk: https://www.webforum.nu/p/1785828

## #16 — Fuel, 2006-03-21T13:31Z

OMG !   :L  glömde att jag var på söksidan .. sorry  :r

Permalänk: https://www.webforum.nu/p/1785829

## #17 — Pedda, 2006-03-21T13:35Z

Gammal tråd så jag kommer inte ihåg exakt hur jag använde koden. Men det var nog för att inte få dubletter, jag körde ju inte någon update om man var inloggad och bytte sida utan en ny insert istället. I vilket fall som helst så var det ju inte den smartaste lösningen. ;) :)

Permalänk: https://www.webforum.nu/p/1785832

---

Tråden på webben: https://www.webforum.nu/amne/php/98909-bästa-sätt-för-online-offline
