Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Online eller ej?


Nu har jeg valgt og lave min første artikel, hvor du kan lærer at lave en "hvem er online" uden brug af javascript (OnUnLoad)

Det eneste du skal bruge her, er en simpel php-kode samt følgende felter i din database:
1. brugernavn
2. status
3. tid

Så snart en bruger logger ind i dit community, skal du lave en skjult iframe.
I den laver vi en "checker" som checker om hvem som er online netop nu på dit online site.

// logind side :

  1. <?php
  2. session_start();

  3. $tid = time();

  4. // lav en query som fortæller brugeren er logget ind, med den nugældene tid ( time() )

  5. mysql_query("UPDATE `brugere` SET `tid` = "$tid", `status` = "online" WHERE `brugernavn` = "$_SESSION["brugernavn"]"");

  6. // brugeren er korrekt logget ind, samt med oplysningerne "status => online" "tid => 1xxxxxxx"

  7. ?>



- Hurtigt referat:
1. Vi starter vores session
2. Vi opretter en variable med vores nu-tid
3. Vi opdatere brugerens informationer med status -> online og tid til vores tid i sekunder

- Faktisk skal du bare redigere dine informationer og sætte mysql_query(..) ind.


I vores logind side, hvor brugeren hele tiden vil være på, skal du lave en skjult iframe, som tjekker hvem der er online på dit website

Kunne evt. se således ud:
  • <iframe src="online_check.php?cache=<?=time();?>" name="online_check" style="display:none;">

// online_check.php :

  1. <?php

  2. // starter vores nygældene tid
  3. $tid = time();

  4. // fortæller den skal opdatere brugere som ikke har haft opdatere feltet "tid" i 60 sekunder - hvis ikke, så laver den "status" til offline og reseter "tid".
  5. mysql_query("UPDATE `brugere` SET `status` = "offline", `tid` = "0" where `tid` < $tid - 60");

  6. // opdatere dine egne data"er
  7. mysql_query("UPDATE `brugere` SET `tid` = "$tid" WHERE `brugernavn` = "$_SESSION["brugernavn"]"");
  8. ?>

  9. <script type="text/javascript">

  10. // opdatere den pågældene side hvert sekundt (kan sættes op og ned efter behov)
  11. setTimeout("location.reload(true)",60000);
  12. </script>



Hurtigt referat:
1. Vi starter vores time
2. Vi fortæller at brugere som ikke har haft opdateret siden "online_check.php" for ca. 60 sekunder siden bliver vist som offline.


-- Nemt og simpelt kan det være, hvorfor dog bruge javascript, når der findes en meget nemmere løsning?

Jeg håber i kunne bruge denne artikel.
Oprettet af:

PHP

Point modtaget: 0

Rate:
21:43 13/08/2006

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Skal det være et iframe??
Oprettet af:
  Mail
22:41 13/08/2006
Behøves det ikke. Du kan også bare lave en fil du kalder online_check.php og indsætte:

<?php

// starter vores nygældene tid
$tid = time();

// fortæller den skal opdatere brugere som ikke har haft opdatere feltet "tid" i 60 sekunder - hvis ikke, så laver den "status" til offline og reseter "tid".
mysql_query("UPDATE `brugere` SET `status` = "offline", `tid` = "0" where `tid` < $tid - 60");

// opdatere dine egne data"er
mysql_query("UPDATE `brugere` SET `tid` = "$tid" WHERE `brugernavn` = "$_SESSION["brugernavn"]"");
?>


Også på alle de andre sider, hvor man skal være logget ind o.lign, lave:

<?php
session_start();
include("online_check.php");
blablabla
?>
Oprettet af:
  Mail
22:45 13/08/2006
Er det ikke også den du har skrevet på eksperten.dk ?
Oprettet af:
  Mail
18:15 14/08/2006
jo? - så længe jeg har lavet artiklen, har jeg rettigheder til, at sætte det på hvilket som helst website for at lærer flere det.

Så en dårlig rating pga det, synes jeg er uacceptebelt adfærde..
Oprettet af:
  Mail
23:53 14/08/2006
Jeg har ikke bedømmet artiklen, desuden er det bare et sprøgsmål? Slap af...Jeg skriver det ikke som en ond mening!
Oprettet af:
  Mail
21:42 16/08/2006
Simpelt og enkelt, god artikel. ;)
Oprettet af:
  Mail
14:09 02/09/2006
Hmm, er der andre måder der gør det mere præcist eller er det der det tætteste?
Sidst redigeret 14:13 - 29/12/2006
Oprettet af:
  Mail
22:59 08/09/2006
God artikel, tror jeg får brug for det. ;)
Oprettet af:
  Mail
16:04 21/09/2006
Nice nok ;b
Oprettet af:
  Mail
19:56 27/09/2006
EHM : hvad er SQL"en til den xD
Oprettet af:
  Mail
14:14 12/10/2006
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes