login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Opgelost] Wie is er online? (Opgelost)

Offline Godlord - 05/04/2007 04:14 (laatste wijziging 05/04/2007 16:31)
Avatar van GodlordPHP gevorderde Hoi iedereen.

Ik ben dus nu bezig met een div waarin site informatie staat. Nu wil ik het zo maken dat er bv. staat:

Citaat:
Visitors Online : 7
Members Online: 1
Online Member(s): Godlord


Nu een member heeft een cookie genaamd 'log' als die ingelogd is. Aan de hand van die cookie zou je dus kunnen zien of er iemand is ingelogd. Maar dan wil je bv. achter 5 minuten inactiviteit weg wordt gehaalt uit de site informatie tot dat je weer een actie hebt uitgevoerd. Nu vraag ik me af hoe je dit bouwt met mySQL. Kan iemand me hierbij helpen?

Alvast Bedankt.

10 antwoorden

Gesponsorde links
Offline ArndJan - 05/04/2007 08:58
Avatar van ArndJan PHP interesse Ha,

Dit is inderdaad goed mogelijk, door elkekeer dat je bezoeker een pagine bezoekt. Een database row update in de database en anders aanmaakt.

Op deze site staat alles duidelijk uitgelegd.
http://dev.mysq...etime.html

Je moet dan bij elke actie die iemand doet, dus een nieuwe pagine bezoeken (update) gelijk controleren of er iemand in je tabel staat die meer dan 5 minuten oud is en die kan je dan in die actie updaten naar inactief. Het is vrij simpel.

Suc6
Offline Godlord - 05/04/2007 14:48 (laatste wijziging 05/04/2007 14:50)
Avatar van Godlord PHP gevorderde OK, ik zal eens kijken, merci hé.

Heeft nog iemand anders iets om mij te helpen ofzo?
Offline Rik - 05/04/2007 14:55
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Er staan ook kant en klare scripts hier op de site die je kan bestuderen om te zien hoe het werkt:
- http://www.site...amp;id=555
- http://www.site...amp;id=791
- http://www.site...mp;id=1049
Offline Godlord - 05/04/2007 15:05 (laatste wijziging 05/04/2007 15:49)
Avatar van Godlord PHP gevorderde De bovenste en onderste had ik al eens eerder gezien.

Ik probeer te begrijpen hoe deze werkt: http://www.site...amp;id=791 .

EDIT

Ik krijg de volgende errors:
Citaat:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 12 in D:Web Serverhomesiteinfo.php on line 37

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:Web Serverhomesiteinfo.php on line 64


Lijn 62 tot 64:
  1. <?php
  2. $QueryMemberOnline = "SELECT * FROM online WHERE user_id <> 0";
  3. $QueryMemberOnline = mysql_query ($QueryMemberOnline);
  4. $mcount = mysql_num_rows($QueryMemberOnline);
  5. ?>


Lijn 35 tot 37:
  1. <?php
  2. $query = "SELECT id FROM accounts WHERE username = '".$username."'";
  3. $id = mysql_query($query);
  4. $id = mysql_result($id, 0);
  5. ?>


Wat is er hier fout? 
Offline Rik - 05/04/2007 15:57
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik heb dit script niet zelf gemaakt dus ik weet niet precies hoe het werkt, maar zo te zien mag je die 0 niet meegeven in regel 37.

Als je toch alleen de eerste waarde nodig hebt kan je net zo goed mysql_fetch_row gebruiken, die begint ook gewoon bij de eerste. ;)
Offline Godlord - 05/04/2007 16:12 (laatste wijziging 05/04/2007 16:14)
Avatar van Godlord PHP gevorderde Die regel 37 is verbeterd alleen nog een probleem met regel 64 

EDIT

Als ik inlog op mijn website krijg ik deze errors:
  1. Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in D:\Web Server\home\siteinfo.php on line 51
  2.  
  3. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Web Server\home\siteinfo.php on line 64


lijn 50-52:
  1. <?php
  2. } else {
  3. $QueryUpdate = mysql_query ( "UPDATE online SET location='".mysql_real_escape_string($_SERVER['REQUEST_URI'])."', time = '".mysql_real_escape_string($time)."', id = '".mysql_real_escape_string($id)."', username = '".mysql_real_escape_string($username)."' WHERE ip = '" . mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."'" ) or die ( mysql_error());
  4. }
  5. ?>
Offline Ibrahim - 05/04/2007 16:17 (laatste wijziging 05/04/2007 16:17)
Avatar van Ibrahim PHP expert een van die variabelen tussen mysql_real_escape_string is een array, probeer ze eens allemaal te echoen

edit:

of echo eens de query, dan zie je het ook meteen
Offline Godlord - 05/04/2007 16:19 (laatste wijziging 05/04/2007 16:22)
Avatar van Godlord PHP gevorderde Ja, heb die fout al verbeterd maar toch bedankt . $id had de array waarde.

  1. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Web Server\home\siteinfo.php on line 65


Lijn 63-65
  1. <?php
  2. $QueryMemberOnline = "SELECT * FROM online WHERE user_id <> 0";
  3. $QueryMemberOnline = mysql_query ($QueryMemberOnline);
  4. $mcount = mysql_num_rows($QueryMemberOnline);
  5. ?>


EDIT
Ik had user_id inplaats id staan. Werkt nu perfect .

Bedankt Allemaal voor de hulp . Het enigste wat ik nog moet doen is zorgen tot de mensen die online zijn, daarvan de usernames te laten zien op de website.
Offline ArndJan - 05/04/2007 16:24
Avatar van ArndJan PHP interesse Hierdan:

  1. <?php
  2. $QueryMemberOnline = "SELECT * FROM online WHERE user_id <> 0";
  3. $QueryMemberOnline = mysql_query ($QueryMemberOnline);
  4. while($row = mysql_fetch_array($QueryMemberOnline ))
  5. {
  6. echo $row['username']."<br/>";
  7. }
  8. ?>
Offline Godlord - 05/04/2007 16:31
Avatar van Godlord PHP gevorderde Bedankt. en nogmaals bedankt aan iedereen voor de hulp, 't werkt perfect 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.416s