[PHP] script voor tellen unieke bezoekers

Pagina: 1
Acties:
  • 241 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op een bepaalde website registreer ik unieke bezoekers die doorgestuurd zijn door partners van me in een database. Zo krijg ik per partner (aan de hand van een unieke die ze meesturen in de url bij het bezoek dat mijn kant op komt) precies te zien hoeveel bezoekers ze door hebben gestuurd. Mijn script werkt als volgt:

ik controleer of een bepaalde sessie var al gezet is, zo niet dan vul ik deze en schrijf de bezoeker weg in de database. Als in diezelfde sessie dan nog een pagina wordt opgevraagd dan is de sessie var al gezet en wordt er dus geen extra bezoeker geregistreerd. Het script dat dit doet staat op de index pagina (alle subpagina's worden geinclude) zodat een bezoeker altijd geregistreerd wordt. De index pagina wordt steeds opnieuw aangeroepen, maar door de controle op de sessie var wordt een bezoeker dus (als het goed is) maar één keer geregistreerd. Enige dat zou kunnen gebeuren is dat de bezoeker de sessie laat verlopen en dan nog een keer de pagina bezoekt, dan zou ie dubbel tellen, maar aangezien de sessietijd op een paar uur staat lijkt me die kans toch wel verwaarloosbaar.

Toch gaat er volgens mij iets niet helemaal goed, want mijn eigen administratie geeft steevast veel meer bezoekers weer als bijvoorbeeld google analytics of webalizer. En dan niet een paar meer maar echt bijvoorbeeld 8 keer zoveel of zo. Hier is mijn script:

PHP:
1
2
3
4
5
6
7
8
9
if (!isset($_SESSION["Partner"])) {
    if (isset($_GET["Part"])) {
        $_SESSION["Partner"] = $_GET["Part"];
                                //hier de code die de bezoeker voor de betreffende partner in de db opslaat
    }
    else {
        $_SESSION["Partner"] = 0;
    }
}


het lijkt mij toch dat dit script wel klopt of doe ik toch iets verkeerd en kan het zijn dat met bovenstaande oplossing toch bezoekers dubbel worden geteld? Of gaat er wellicht iets anders verkeerd dan in het codevoorbeeld?

Acties:
  • 0 Henk 'm!

Verwijderd

Word je sessie wel geset? Heb je session_start() boven aan je script staan?

Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Dat GA andere waardes geeft is logisch. Dat is puur javascript. Zet dat uit, en het GA script wordt niet gestart, dus niet geteld.
Aangezien GA een javascript is, telt deze ook geen zoekmachines. Jij zet cookies voor je sessies, en ook zoekmachines accepteren dat niet.
Webalizer geen ervaring mee, maar dat GA andere waardes geeft is dus niet vreemd.

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • qless
  • Registratie: Maart 2000
  • Laatst online: 17:11

qless

...vraag maar...

RaZ schreef op maandag 05 november 2007 @ 21:46:
Dat GA andere waardes geeft is logisch. Dat is puur javascript. Zet dat uit, en het GA script wordt niet gestart, dus niet geteld.
Aangezien GA een javascript is, telt deze ook geen zoekmachines. Jij zet cookies voor je sessies, en ook zoekmachines accepteren dat niet.
Webalizer geen ervaring mee, maar dat GA andere waardes geeft is dus niet vreemd.
En webalizer pakt sowieso veel meer, die telt log regels en op een of andere manier klopt die unieke hits melding nooit....

Website|Air 3s|Mini 4 Pro|Avata 2|Canon R6|Canon 5d2|8 fisheye|14f2.8|24f2.8|50f1.8|135f2|10-22|17-40|24-105|70-300|150-600


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb session_start uiteraard aanstaan. Verder snap ik dat GA en webalizer altijd af zullen wijken maar aangezien er bij mij vaak sprake is van een heel groot verschil: ik registreer 2000 bezoekers op een dag daar waar webalizer of GA er iets van 200 of 250 op een dag registreren

lijkt het me toch dat er iets anders mis moet gaan, maar ik weet dus niet wat..

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Misschien worden er afbeeldingen gehotlinkt van je, webalizer zou dat als bezoek registreren maar GA niet, omdat ze geen pagina bezocht hebben. Zelf hou ik altijd GA aan ipv Webalizer of AWStats. Alleen JavaScript gebruikers telt ie niet en dat is best jammer maar ook t enige nadeel imo.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja maar het gaat hier niet om het verschil tussen webalizer en GA, het gaat erom dat mijn eigen systeem een veelvoud aan bezoekers van de aantallen die webalizer en GA aangeven registreert

ik ben dus op zoek naar wat er misgaat in mijn eigen systeem (zie eerste post)

Acties:
  • 0 Henk 'm!

  • fleppuhstein
  • Registratie: Januari 2002
  • Laatst online: 07-09 13:37
Verwijderd schreef op dinsdag 06 november 2007 @ 14:36:
ja maar het gaat hier niet om het verschil tussen webalizer en GA, het gaat erom dat mijn eigen systeem een veelvoud aan bezoekers van de aantallen die webalizer en GA aangeven registreert

ik ben dus op zoek naar wat er misgaat in mijn eigen systeem (zie eerste post)
Maak je functie wat uitgebreider, en registreer tijdstip en ipadressen. Dan kan je kijken of er in de je eigenbezoekers log dubbele vermeldingen staan, van hetzelfde IP op verschillende tijdstippen ?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dankjewel, dat checken op ip adres was inderdaad een goed idee. Ik kwam erachter dat bepaalde ip's toch dubbel werden geteld, daar heb ik nu een extra check voor ingebouwd, zodat een ip-adres per partner echt maar één keer per dag wordt geteld.

Verder kwam ik er achter dat de googlebot voor nogal wat 'bezoekers' zorgde. Ik filter nu op dit ip-adres zodat dit nooit wordt meegeteld. Echter, is het ip-adres van de googlebot altijd hetzelfde? Of verandert dit soms? Verder zijn er wellicht nog meer ip's van andere bots waar ik op zou moeten filteren of niet?

Acties:
  • 0 Henk 'm!

  • XeriuM
  • Registratie: Juni 2005
  • Laatst online: 21-09 04:17
Als op IPs wil filteren zou je misschien hele ranges kunnen gaan filteren van bijvoorbeeld Google, daar schiet je meer mee op dan maar een paar IPs filteren.

Acties:
  • 0 Henk 'm!

  • jvbijleveld
  • Registratie: April 2007
  • Laatst online: 20-09 00:26
Die bots hebben verschillende ip-adressen, het heeft dus geen zin om hier op te filteren.
Wat je wel kan doen is me $_SERVER['HTTP_USER_AGENT']; de verschillende user agents loggen en daar op filteren.

...


Acties:
  • 0 Henk 'm!

  • kokx
  • Registratie: Augustus 2006
  • Laatst online: 13-09 20:30

kokx

WIN

jvbijleveld schreef op vrijdag 16 november 2007 @ 09:00:
Die bots hebben verschillende ip-adressen, het heeft dus geen zin om hier op te filteren.
Wat je wel kan doen is me $_SERVER['HTTP_USER_AGENT']; de verschillende user agents loggen en daar op filteren.
Je moet niet te veel op HTTP_USER_AGENT vertrouwen, aangezien die veel te gemakkelijk t faken is. Ik ken plugins voor firefox waardoor je je user agent kan veranderen. Het is zelfs mogelijk om hier SQL injection in te pleuren.
Pagina: 1