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.
Fin artikel, det kan ejg godt få brug for en gang. :D
Oprettet af:
  Mail
15:54 20/10/2006
SQL? Ja hvis du kiggede koden igemmen, vil du nok finde ud af at man ikke skal bruge sql men flot 3 felter; Brugernavn, status, tid
Sidst redigeret 15:29 - 12/01/2007
Oprettet af:
  Mail
15:29 12/01/2007
Jeg syntes det er en god artikel. Den lærte mig meget.. Men jeg lagde mærke til at du har en lille javascrpit i koderne.

  • <script type="text/javascript">

Men jeg er ny i PHP så det er bare guf for mig
Oprettet af:
  Mail
21:03 12/01/2007
Rigtig god artikel, det kan man altid få brug for! :D
Oprettet af:
  Mail
18:07 28/03/2007
ja. Fin artikel
Oprettet af:
  Mail
13:39 15/04/2007
Kan ikke få det til at virke? ..
Oprettet af:
  Mail
14:22 13/10/2007
Nogen der kan hjælpe mig med koden, for kan ikke få den til at virke.. (;
Oprettet af:
  Mail
09:42 14/10/2007
Hej,

det her er godt stof..! Men hvad nu hvis man gerne vil lave en session_destroy(); på alle dem som har 'offline' stående i deres status-felt..?

På den måde vil man jo også kunne komme dem til livs, som ikke er logget ud manuelt, men bare har lukket browseren ned.. eller hvad?
Oprettet af:
  Mail
14:46 13/02/2008
fedt det kunne jeg bruge
Oprettet af:
  Mail
09:29 05/04/2008
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes