Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Śledzenie kroków odowiedzającego stronę.
kukix
post 31.05.2013, 13:17:29
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam.

Szykuje mechanizm, kóry będzie śledził kroki odwiedzającego stronę.

Tabele myślałem, żeby zrobić taką:

  1. CREATE TABLE IF NOT EXISTS `statystyki` (
  2. `session_id` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  3. `user_id` int(11) NOT NULL,
  4. `user_ip` varchar(25) COLLATE utf8_polish_ci NOT NULL,
  5. `odwiedzono_szczegoly` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  6. `time` datetime NOT NULL,
  7. `wejscie_ze_strony` varchar(255) COLLATE utf8_polish_ci NOT NULL
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;



Pomysł jest taki, żeby po wywołanu każdej strony dodawać wpis do tabeli i tam za każdym razem "id sesj"i, "czas wywołania", "id usera" (jeżeli się zalogował), jeżeli wykryje $_SERVER['HTTP_REFERER'] to również "wejscie_ze_strony" + odwiedzana podstrona.

Mam wątpliwości w jaki sposób dodawać nowe wpisy tak, żeby dwa jednakowe wpisy nie były obok siebie co może wystąpić po odświeżeniu strony.


Czy ktoś ma jakieś sugestie jak taki mechanizm wykonac? Jakieś pomysły?


Ten post edytował kukix 31.05.2013, 15:03:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post 31.05.2013, 14:53:41
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dwa jednakowe wpisy z założenia nie mogą się pojawić.

Daj session_id jako PRIMARY (czyli też Unique) to podstawa.

I teraz możesz dodawać nowe rekordy za pomocą klauzuli INSERT ... ON DUPLICATE UPDATE

czyli:

  1. INSERT INTO tabela (session_id,user_id,...,time,wejscie_ze_strony) VALUES ('aaa','1',...,NOW(),'referer') ON DUPLICATE KEY UPDATE user_id = '1', ... , time = NOW();


Innymi słowy działa to tak:

1. wrzuć do bazy dane z danej sesji,
2. jeśli taki klucz (id sesji) już istnieje - zaktualizuj wszystkie pola w rekordzie (poza polem session_id oraz wejscie_ze_strony - aby nie nadpisać oryginalnego wejścia).
3. done smile.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 20:09