login  Naam:   Wachtwoord: 
Registreer je!
 Forum

onlinelijst

Offline sachico - 18/05/2008 19:32
Avatar van sachicoNieuw lid Ik zou graag een onlinelijst willen maken.
Ik heb mijn leden opgeslagen in een database (genaamd leden) ik zou graag willen vanaf ze zijn ingelogged dat hun naam in de onlinelijst komt te staan en vanaf ze weer zijn uitgelogged de naam verwijderd. Ik weet niet hoe ik het moet doen weet iemand hoe ik kan beginnen?

11 antwoorden

Gesponsorde links
Offline Stijn - 18/05/2008 19:38
Avatar van Stijn PHP expert Maak een tabel "online" met de velden: id, member_id, time, page.
Maak een php script die kijkt naar iedere record in de tabel "online". Is de time - PHP.net: time() groter dan 300 (5 minuten) dan verwijder je die record.

En natuurlijk moet je de time altijd updaten als de gebruiker op een pagina klikt.
Offline Ibrahim - 18/05/2008 19:38
Avatar van Ibrahim PHP expert Sla de ingeloggde personen op in een tabel, en verwijder ze dan weer als ze uitloggen...?
Offline stienoco - 18/05/2008 20:09
Avatar van stienoco Onbekend
Psycho schreef:
Sla de ingeloggde personen op in een tabel, en verwijder ze dan weer als ze uitloggen...?


En als ze gewoon de browser afsluiten (dus niet uitloggen?)
Offline sachico - 18/05/2008 20:10
Avatar van sachico Nieuw lid Dan moeten ze ook verwijderd worden.
Offline stienoco - 18/05/2008 20:14
Avatar van stienoco Onbekend En hoe doe je dat dan?
Offline Ibrahim - 18/05/2008 20:22
Avatar van Ibrahim PHP expert Waarom zou je ze uit de lijst halen als ze de browser uitzetten ? Gewoon een tijdslimiet opzetten, na een x aantal minuten uit de lijst verwijderen via een cronjob ofzo 
Offline sachico - 18/05/2008 20:33 (laatste wijziging 18/05/2008 20:37)
Avatar van sachico Nieuw lid En hoe doe je dat allemaal doen?
Offline zointer - 18/05/2008 21:34
Avatar van zointer HTML gevorderde
Sandernerd schreef:
Psycho doet volgens mee veels te moeilijk, doe het zoals stijn zegt.

Hmmm eigenlijk komt op zelfde neer wat beide zeggen en bij scripts/tuto's staat iets bruikbaars (ten zei ik teveel whiskey op hem )
Offline vinTage - 18/05/2008 21:53 (laatste wijziging 18/05/2008 21:56)
Avatar van vinTage Nieuw lid <body onunload="ajax functie" >

edit: riep er iemand whiskey 
Offline GTW - 18/05/2008 22:15 (laatste wijziging 18/05/2008 22:17)
Avatar van GTW Gouden medaille

PHP gevorderde
Wat ik meestal in zo'n geval doe:

in de tabel gebruikers/leden/whatever, een extra veld 'online' maken. Bij elke pagina die men betreed, wordt deze geupdate met een timestamp.
Dan op de plek waar je dat nodig hebt, sorteer je daarop en kan je kijken of iemand minder dan (in het geval van 5 minuten) 300 seconden actief is geweest. die laat je netjes ergens weergeven

Je werkt dus niet met een hele losse tabel
Offline Joost - 18/05/2008 22:16 (laatste wijziging 18/05/2008 22:19)
Avatar van Joost PHP expert
  1. $id = $_SESSION['member_id']; // Member_ID via sessie opgeslagen
  2.  
  3. mysql_query("UPDATE `online` SET `time`='".time()."' WHERE `member_id`='".$id."' ") or die(mysql_error()); // Tijd updaten
  4.  
  5. mysql_query("DELETE FROM `online` WHERE `time`<'".(time() - 300)."' ") or die(mysql_error()); // Verwijderen welke 5 min niks hebben gedaan.


Als je met modules werkt (1 pagina waar in wordt geinclude met bv $_GET), zet je dat in het grote bestand, waarin geinclude wordt. Anders bv in de config.inc.php.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.33s