login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bezoekers online

Offline Voldemort - 22/07/2005 15:00 (laatste wijziging 22/07/2005 15:00)
Avatar van VoldemortPHP ver gevorderde Ik heb een script: Bezoekers (leden en gasten) online. Als ik op de site ben geeft ie alles goed weer, als er iemand bij komt, dan komt die erbij. Als dan iemand vernieuwd, dan komt er een nieuwe gast bij (met hetzelfde ip). En als ik vernieuw (ingelogd), dan sta ik er plots 3 keer op. Script:

sluipwegwijzer.php
  1. <?php
  2. //Mensen die langer dan 5 minuten niets meer hebben gedaan (ze hebben waarschijnlijk de site verlaten) verwijderen
  3. $query = "DELETE FROM `sluipwegwijzer` WHERE `sinds` < ".(time()-300);
  4. $result = mysql_query($query) or die(mysql_error());
  5.  
  6. //Checken of er ingelogd is voor de input
  7. if(isset($_COOKIE['id']) && isset($_COOKIE['gebruikersnaam']) && isset($_COOKIE['hash']))
  8. {
  9. $query2 = "SELECT `status`, `sluip_verborg`, `sluip_verborg_pag` FROM `leden` WHERE `id`='".$_COOKIE['id']."'";
  10. $result2 = mysql_query($query2) or die(mysql_error());
  11. $fetch2 = mysql_fetch_array($result2);
  12. if($fetch2['sluip_verborg'] == "ja")
  13. {
  14. $lid = "Verborgen lid";
  15. }
  16. else
  17. {
  18. $lid = $_COOKIE['gebruikersnaam'];
  19. }
  20.  
  21. if($fetch2['sluip_verborg_pag'] == "ja")
  22. {
  23. $pagina = "Verborgen";
  24. }
  25. else
  26. {
  27. $pagina = $pagina2;
  28. }
  29.  
  30. $lidid = $_COOKIE['id'];
  31. $status = $fetch2['status'];
  32. $sorteer = 1;
  33. }
  34. else
  35. {
  36. $lidid = "";
  37. $pagina = $pagina2;
  38. $lid = "Gast";
  39. $status = "";
  40. $sorteer = 0;
  41. }
  42.  
  43. //Tellen hoeveel keer dit ip al in de DB staat
  44. $query3 = "SELECT COUNT(`lid`) FROM `sluipwegwijzer` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."'";
  45. $result3 = mysql_query($query3) or die(mysql_error());
  46. $mysql_result3 = mysql_result($result3,0);
  47.  
  48. //Als deze persoon nog niet in de DB staat, hem erin zetten
  49. if($mysql_result3 == 0)
  50. {
  51. $query4 = "INSERT INTO `sluipwegwijzer`(`lidid`, `lid`,`pagina`,`url`,`sinds`,`ip`, `status`, `sorteer`) VALUES('".$lidid."', '".$lid."', '".$pagina."', 'http://".$_SERVER['HTTP_HOST']."".$_SERVER['REQUEST_URI']."', '".time()."', '".$_SERVER['REMOTE_ADDR']."', '".$status."', '".$sorteer."')";
  52. $result4 = mysql_query($query4) or die(mysql_error());
  53. }
  54. //Anders staat de persoon er wel in en updaten we zijn gegevens
  55. else
  56. {
  57. $query4 = "UPDATE `sluipwegwijzer` SET `lidid`='".$lidid."', `lid` = '".$lid."', `pagina` = '".$pagina."', `url` = 'http://".$_SERVER['HTTP_HOST']."".$_SERVER['REQUEST_URI']."', `sinds`='".time()."', `ip` = '".$_SERVER['REMOTE_ADDR']."', `status`='".$status."', `sorteer`='".$sorteer."'";
  58. $result4 = mysql_query($query4) or die(mysql_error());
  59. }
  60. ?>


En ik pas het zo toe, op elke pagina staat dit dus:

  1. <?php
  2. $pagina2 = "Home";
  3.  
  4. require_once($_SERVER['DOCUMENT_ROOT']."/includes/sluipwegwijzer.php");
  5. ?>


Normaal kan er toch niet 2 keer hetzelfde ip voorkomen? Waarom gebeurt dit toch? En waarom komt er zoveel keer hetzelfde op de weergeef pagina van de inhoud?

5 antwoorden

Gesponsorde links
Offline Stijn - 22/07/2005 15:14
Avatar van Stijn PHP expert mjach, als dit voorkomt, kijk eens eerst en vooral in je tabel zelf dan keer je terug naar script en kijk je waar het mis is gegaan.

vervang eens die $query3 = ... naar

  1. <?
  2. $query3 = mysql_query("SELECT * FROM sluipwijzer WHERE ip = '".$_SERVER['REMOTE_ADDR']."'");
  3. ?>


en dan bij je if else controle:

  1. <?
  2. if(mysql_num_rows($query3) == 0)
  3. {
  4. //nieuwe rij maken met gegevens van daarboven
  5. }
  6. elseif(mysql_num_rows($query3) == 1)
  7. {
  8. //update gewoon
  9. }
  10. else
  11. {
  12. //mag je hier lekker een vette error plaatsten :)
  13. }
  14. ?>


mvg stijn 
Offline Voldemort - 22/07/2005 15:29 (laatste wijziging 22/07/2005 17:36)
Avatar van Voldemort PHP ver gevorderde Helpt niet.

En in de tabel staat net hetzelfde als dat er wordt weergegeven.
Offline Dolfje - 22/07/2005 18:32
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Volgens mij ligt het aan het uitputten, mss kan je die ook eens posten?
Offline Dolfje - 22/07/2005 18:34 (laatste wijziging 22/07/2005 18:35)
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
fout gevonden:
  1. $query4 = "UPDATE `sluipwegwijzer` SET `lidid`='".$lidid."', `lid` = '".$lid."', `pagina` = '".$pagina."', `url` = 'http://".$_SERVER['HTTP_HOST']."".$_SERVER['REQUEST_URI']."', `sinds`='".time()."', `ip` = '".$_SERVER['REMOTE_ADDR']."', `status`='".$status."', `sorteer`='".$sorteer."'";



hier vergeet je te zetten: WHERE ip = '".$_SERVER['REMOTE_ADDR']."'

Dus update hij iedereen,
sorry van de dubbelpost 
Offline Voldemort - 22/07/2005 19:52
Avatar van Voldemort PHP ver gevorderde @dolfje: Jouw oplossing werkt. Nu werkt m'n scriptje soepel.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.228s