login  Naam:   Wachtwoord: 
Registreer je!
 Forum

unieke bezoekers

Offline MadMike - 10/03/2005 12:36 (laatste wijziging 10/03/2005 12:45)
Avatar van MadMikeLid Hey!
ik ben een heel basic script gemaat die per dag de unieke bezoekers opslaat in de database. Maar ergens gaat iets fout. want hij ziet iedere bezoeker als een unieke bezoeker (dus als iemand dus vandaag voor het eerst de site bezoekt)

mysql taballen
  1. CREATE TABLE `hits` (
  2. `id` int(50) NOT NULL auto_increment,
  3. `datum` varchar(10) NOT NULL default '',
  4. `tijd` varchar(5) NOT NULL default '',
  5. `ip_adres` varchar(15) NOT NULL default '',
  6. PRIMARY KEY (`id`)
  7. ) TYPE=MyISAM AUTO_INCREMENT=1 ;
  8.  
  9.  
  10. CREATE TABLE `hits_overview` (
  11. `id` int(5) NOT NULL auto_increment,
  12. `datum` varchar(10) NOT NULL default '',
  13. `aantal_hits` int(10) NOT NULL default '0',
  14. PRIMARY KEY (`id`)
  15. ) TYPE=MyISAM AUTO_INCREMENT=1 ;


hits.php
  1. <?
  2. /*
  3. Name: hits.php
  4. Version: 1.0
  5. Author: Mad_Mike
  6. */
  7.  
  8.  
  9. /* geeft IP van client */
  10. function get_ip() {
  11. if(getenv("HTTP_X_FORWARDED_FOR"))
  12. {
  13. $IPadres = getenv("HTTP_X_FORWARDED_FOR");
  14. } elseif(getenv("HTTP_CLIENT_IP")) {
  15. $IPadres = getenv("HTTP_CLIENT_IP");
  16. } else {
  17. $IPadres = $_SERVER["REMOTE_ADDR"];
  18. }
  19. return $IPadres;
  20. }
  21.  
  22. $ip = get_ip();
  23. $datum = date("d-m-Y");
  24. $tijd = date("H:i");
  25.  
  26. $mysql = "SELECT id FROM hits WHERE ip_adres = '$ip' AND datum = 'datum'";
  27. $query = mysql_query($mysql) or die(mysql_error());
  28. $aantal = mysql_num_rows($query);
  29.  
  30. if($aantal < 1) {
  31. // de eerste keer dat deze site bezocht wordt op deze dag
  32. $qeury2 = mysql_query("INSERT INTO hits (datum, tijd, ip_adres) values ('$datum', '$tijd', ' $ip')") or die(mysql_error());
  33.  
  34. // update de dag-overzicht (hits_overview)
  35. $query3 = mysql_query("SELECT * FROM hits_overview WHERE datum = '$datum'") or die(mysql_error());
  36. $aantal3 = mysql_num_rows($query3);
  37. if($aantal < 1) {
  38. // eerste bezoeker vandaag
  39. $query4 = mysql_query("INSERT INTO hits_overview (datum, aantal_hits) values ('$datum', '1')") or die(mysql_error());
  40. } else {
  41. $select = mysql_fetch_array($query3);
  42. $aantal_hits = $select['aantal_hits'];
  43. $aantal_hits++;
  44.  
  45. // update de gegevens
  46. $query5 = mysql_query("UPDATE hits_overview SET aantal_hits = '$aantal_hits' WHERE datum = '$datum'") or die(mysql_error());
  47. }
  48.  
  49. }
  50.  
  51. ?>


ik snap niet wat er fout gaat. Ziet iemand wat ik waarschijnlijk over het hoofd zie?

4 antwoorden

Gesponsorde links
Offline MechaVore - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van MechaVore Gouden medaille

PHP gevorderde
$qeury2 = mysql_query(INSERT INTO hits (datum, tijd, ip_adres) values ('$datum', '$tijd', ' $ip')) or die(mysql_error());rnrnrner staat voor $ip een spatie ... zou dat het kunnen zijn zodat hij altijd een nieuwe bezoeker ziet omdat hij geen 213.10.101.234 vind maar 213.10.101.234 ..rnrnde ip word telkens met een spatie ervoor opgeslagen. en als jij dat select bla where ip = remote adres doet zal hij niks vinden omdat er overal een spatie voor staat
Offline Thomas - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Thomas Moderator Als je dit wilt wetenrn de eerste keer dat deze site bezocht wordt [b]op deze dag[b]rnrnDan moet je dat ook in de query $mysql opnemen (AND datum = '$datum') rnrnEn spaties binnen quotes zijn natuurlijk nooit gezond idd .
Offline MadMike - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van MadMike Lid @ FangorN, klopt had ik hier ook al staan vergeten te posten...rnrnik had die ff tijdelijk weg zodat ik alleen op ip keek. maar ook met datum werkt het niet. zelf alleen met datum niet!rnrnHeb het nog niet localhost getest. Dat ga ik nu ff doenrnrnedit spatie ga ik ook ff testen als ik die weg haal, was niet de bedoeling dat die daar stond
Offline MadMike - 30/11/1999 00:00
Avatar van MadMike Lid @ LightbladernDat met die spatie erin was idd de fout. Denk dat die ergekomen is omdat ik dit ff snel gemaakt had. En eroverheen gelezen had met checken.rnrnDe eerste check (of je die dag een unieke bezoeker bent) werkt. Alleen bleek er ook nog een fout te zitten met het updaten van hits_overviewrnrn if($aantal 1) {rn eerste bezoeker vandaagrnrnmoest $aantal3 zijn.rnrnAlles werkt nu! Bedankt voor de snelle support!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s