login  Naam:   Wachtwoord: 
Registreer je!
 Forum

online script

Offline leendertW - 12/04/2005 19:05
Avatar van leendertWPHP beginner Ik maak gebruik van onderstaande code om te kijken welke/hoeveel gasten/leden er online zijn:
  1. <?php
  2.  
  3. $sOnlineVerval = time()-300; // in secondes
  4.  
  5. // controleren af pagina is ge-include
  6. if (end(explode("/",$_SERVER['PHP_SELF'])) == "online.inc.php")
  7. {
  8. header("Location: ./index.php");
  9. exit();
  10. }
  11.  
  12. $iIp = getenv("REMOTE_ADDR");
  13. if ( $iIp == "" )
  14. {
  15. $iIp = getenv ( "HTTP_X_FORWARDED_FOR" );
  16. }
  17. if ( !isset ( $page_naam ) )
  18. {
  19. $page_naam = "";
  20. }
  21. if ( !isset ( $_SESSION['userid'] ) )
  22. {
  23. $userid = 0;
  24. }
  25.  
  26. $time = time();
  27.  
  28. $sQuery = ("DELETE FROM online WHERE datum < '$sOnlineVerval'");
  29. mysql_query ( $sQuery ) or die ("Er is een fout opgetreden: ".mysql_error());
  30.  
  31.  
  32. if ( $_SESSION['ingelogd'] == 1)
  33. {
  34. $sql = mysql_query ( "SELECT * FROM online WHERE userid = ".$_SESSION['user_id'] );
  35.  
  36. $sql2 = "userid ='".$_SESSION['userid']."', ip='$iIp'";
  37.  
  38. $sql3 = "userid =".$_SESSION['userid'];
  39.  
  40. }
  41. elseif ( $_SESSION['ingelogd'] == 0 )
  42. {
  43. $sql = mysql_query("SELECT * FROM online WHERE ip = '$iIp' AND userid = '0'");
  44.  
  45. $sql2 = "ip = '".$iIp."'";
  46.  
  47. $sql3 = "ip = '".$iIp."'";
  48.  
  49. }
  50.  
  51. if ( mysql_num_rows ( $sql ) == 0 )
  52. {
  53. $sReferer = $_SERVER['HTTP_REFERER'];
  54.  
  55. $sQueryInsert = mysql_query ( "INSERT INTO online SET $sql2, datum='$time', datum_start='$time', pagina='$page_naam', referer='$sReferer'" );
  56.  
  57. }
  58. elseif ( mysql_num_rows ( $sql) != 0)
  59. {
  60. $sQueryUpdate = mysql_query ( "UPDATE online SET datum='$time', pagina='$page_naam' WHERE ".$sql3);
  61. }
  62.  
  63. ?>


Nu gaat het goed als je niet bent ingelogd want dan geeft hij netjes weer hoeveel gasten er online zijn.
Maar wanneer ik inlog (dan is mijn user_id dus 1) dan blijft hij het aantal GASTEN maar optellen en verwijderd hij niks.
Fout is dus dat hij de hele tijd gasten +1 doet (wanneer ik op f5 klik) en ik er hoort er 1 bij leden te komen staan ipv bij gasten (omdat ik ben ingelogd)
Wat is hier fout aan?

edit
met error_reporting(E_ALL) geeft hij ook onderstaande fouten:



Notice: Undefined index: ingelogd in /var/www/s//HTML/inc/online.inc.php on line 33

Notice: Undefined index: ingelogd in /var/www/s//HTML/inc/online.inc.php on line 42

5 antwoorden

Gesponsorde links
Offline xSc - 12/04/2005 19:10
Avatar van xSc Onbekend Notice: Undefined index: ingelogd in /var/www/s//HTML/inc/online.inc.php on line 33

Notice: Undefined index: ingelogd in /var/www/s//HTML/inc/online.inc.php on line 42

dit houdt in dat je niet gecontroleerd hebt of die var wel bestaat. Het gaat dus op $_SESSION['ingelogd']

Dus:

  1. <?php
  2.  
  3. if (isSet($_SESSION['ingelogd']))
  4. {
  5.  
  6. if ($_SESSION['ingelogd'] == 1)
  7. {
  8.  
  9.  
  10.  
  11. }
  12.  
  13. }
  14.  
  15. ?>


Begrijp je?
Offline leendertW - 12/04/2005 19:44
Avatar van leendertW PHP beginner @Henri, die fout had ik ondertussen al verholpen maar dat helpt niet wat betreft het aantal online leden/gasten!
Offline stuifie - 12/04/2005 23:37
Avatar van stuifie PHP beginner is session al gestart?
is $_SESSION['ingelogd'] ergens aangemaakt?
Offline Klopper - 12/04/2005 23:50
Avatar van Klopper HTML interesse Moet je niet eerst
session_start();
gebruiken aan het begin van je pagina. Anders begint de sessie 'from scratch'...
Offline leendertW - 13/04/2005 08:24
Avatar van leendertW PHP beginner Ik heb het probleem al opgelost.
Er zaten enkele snehheid foutjes in zoals userid en user_id 

Verder was de sessie al gestart dus daar kon het niet aan liggen.

Maar bedankt,
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.241s