Jestem trochę zaskoczony pewną sytuacją. Otóż robię mały system statystyk - tam jedyne co mam to "id", "referrer" oraz "hits" (czyli - z jakiego referrer'a ile hits)
W tym celu mam prostą funkcję, która jest wywoływana przy każdym wejściu na stronę - funkcja ta ma za zadanie zrobić co następuje:
Czy dany referrer jest już w bazie danych?
nie?: należy dodać go a "hit" ustawić na 1
tak?: należy zwiększyć jego "hits"
Niby proste, ale gdy dnia następnego zajrzałem na tę tabelę w phpmyadmin, okazało się... że w wielu przypadkach ten sam referrer się powtarza, mam więc np. 3 referrers z "jakas_strona.com".
Ta prosta funkcja wygląda mniej więcej tak:
<?php function WReferrersIncrementHits($sRef) { //(...) pominięte sprawdzanie czy to wygląda na url i różne anty-hackowe sprawy //jak nie ma to dodajemy i jeszcze raz pobieramy: if($num==0){//a może winno być ===0? //no to raz jeszcze (trochę głupie, chyba od razu mógłbym wstawić z hit=1 ale kit z tym na razie): }; if($num!=1){ //return ;//to niemożl. //kurde a właśnie, że się zdarza!!!!! return; }; //zwiekszamy licznik: $val_inc+=1; }; ?>
Kończy się tym, że dla jednego referrer jest więcej niż jeden wiersz w bazie.
Czy to możliwe, że jeden user powoduje wywołanie tej funkcji i w jej połowie (w trakcie jej wykonywania) inny user zagląda na stronę z tego samego referrer i znowu powoduje wywołanie tej funkcji, co kończy się namnożeniem tegoż referrer?