Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Witam, jak zmierzyć czas pobytu usera na stronie?
miedzna
post
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Chodzi o to, że muszę zmierzyć czas pobytu usera na stronie w okresie jak się zaloguje i jak się wyloguje a później tę zmienną przypisać w bazie do tego właśnie usera.
Poza tym czy macie jakieś pomysły na to, żeby ograniczyć ilość logowań na stronę do dwóch razy?
Chcę to zrobić tak:
w tabelce z userami mam kolumnę ilosc_logowan z domyślną wartością 0, po zalogowaniu się pobieram tę wartość i jeżeli jest mniejsza od 2, to dopisuję do niej 1 i dodaję ją z powrotem do bazy i tak w kółko, aż wartość zmiennej ilosc_logowan wyniesie 2. Może macie pomysł, żeby tę procedurę jakoś skrócić?

Dzięki i pozdrawiam.

Ten post edytował miedzna 13.02.2006, 10:39:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ale po co te uprzejmości w tytule? Wal to w treści a nie w tytule winksmiley.jpg

Gdy sie koles loguje, to zapisujesz w bazie lub w sesji czas zalogowania. gdy wcisnie wyloguj, to pobierasz ten czas i porownujesz z czasem wylogowania i zapisujesz wynik do bazy. Oczywiscie bedzie problem gdy koles nie wcisnie wyloguj. Mozna by więc zapisywac jeszcze czas jego ostatniej aktywności, a poznije przy logowaniu sprawdzac czy sie wylogowal czy nie. jesli sie nie wylogowal, to zapisac czas jego ostatniej aktywnosci + 5 minut i uznac to za czas wylogowania.

Co do drugiego:
piszesz zapytanie, ktore warunkowo zmienia wartoswc kolumny (uzyj mysql'owego if). potem w php przy pomocy mysql_affected_rows sprawdzasz ile bylo przetworzonych rekordow. Jesli jeden, to zwiekszyles licznik. jesli 0, to gostek logowal sie juz dwa razy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miedzna
post
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Zrobiłem tak, skrypt java script:
  1. <script LANGUAGE="JavaScript">
  2. startday = new Date();
  3. clockStart = startday.getTime();
  4. function initStopwatch()
  5. {
  6. var myTime = new Date();
  7. var timeNow = myTime.getTime();
  8. var timeDiff = timeNow - clockStart;
  9. this.diffSecs = timeDiff/1000;
  10. return(this.diffSecs);
  11. }
  12. function getSecs()
  13. {
  14. var mySecs = initStopwatch();
  15. var mySecs1 = ""+mySecs;
  16. mySecs1= mySecs1.substring(0,mySecs1.indexOf("."));
  17. document.odpowiedzi.czasPobytu.value=mySecs1
  18. window.setTimeout('getSecs()',1000);
  19. //if (mySecs1==60) {alert("jesteś tutaj już 60 sekund ...") }
  20. }



a niżej dałem to:
  1. <form name="odpowiedzi" method="post" action="...php">
  2. <input name="czasPobytu">
  3. <input type="submit" value="Wyślij odpowiedzi">
  4. </form>


I user widzi ile już czasu minęło i czy ma się pośpieszyć (konkurs na czas) a dodatkowo mam czas jaki minął od zalogowania się do momentu wylogowania się w sekundach smile.gif)

aha, jeszcze oczywiście w body:
<body onLoad="window.setTimeout('getSecs()',1)">

Ten post edytował miedzna 15.02.2006, 10:39:30
Go to the top of the page
+Quote Post

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 Aktualny czas: 20.08.2025 - 05:30