Kunnen jullie mij opweg helpen met een Login timer script?
Momenteel ben ik bezig met een website waar ik graag een Login timer op wil hebben staan, Wat ik bedoel met een Login timer is:
1. een persoon logt in
2. het persoon logt naar een bepaalde tijd uit.
3. het java script heeft bij gehouden hoelang het persoon online is geweest
4. het php script voert het in, in de database in de column "last_activity" en in de column "Total_activity".
5. en komt het persoon nog een keer online en logt hij uit naar 5 minuten zou ik het graag zo willen hebben dat het in de column "Total_Activy" word opgeteld, en in de column "last_activity" word veranderd.
Zouden jullie mij hier mee een beetje op weg kunnen helpen?
Ik ben er nu een tijdje mee bezig maar kan er niet uit komen.
Groeten
Kylian Bos
Wij hebben helaas geen glazen bol namelijk ;-)
- Aar - op 15/08/2012 22:12:43:
Wat heb je dan geprobeerd gezien je er al een tijdje mee bezig bent?
Wij hebben helaas geen glazen bol namelijk ;-)
Wij hebben helaas geen glazen bol namelijk ;-)
Klopt... Overigens heb ik wel een glazen bol. Dus spreek niet met "wij". Ik moet zeggen, met zo'n kaars in, mooi zicht zo die bol. (sarcasme)
Gewijzigd op 15/08/2012 22:17:17 door Write Down
Wel met opening, mag ik hopen. Anders is de zuurstof zo op....
Je zou de tijd waarop iemand inlogt in een Session kunnen opslaan, en op het moment dat iemand uitlogt, of als de session verbroken word, het verschil in tijd kunnen opslaan en de tijd zelf.
En ingelogd wil niet zeggen dat iemand ook daadwerkelijk op de site actief is geweest.
Zodra iemand bijvoorbeeld de browser sluit is je javascript niet meer actief dus zul je dit nooit kunnen loggen, zoals jij het wilt werkt dit dus alleen als iemand "netjes" uitlogt.
Hooguit met Javascript nog even snel een pagina openen na sluiten.
Iets wat meestal als zeer irritant bevonden wordt...
Uiteraard weet je niet of iemand ook echt iets heeft gedaan op je website, maar wel dat de pagina open was.
Eddy Erkelens op 16/08/2012 09:28:38:
Zoiets log je ook niet met Javascript.
Hooguit met Javascript nog even snel een pagina openen na sluiten.
Iets wat meestal als zeer irritant bevonden wordt...
Hooguit met Javascript nog even snel een pagina openen na sluiten.
Iets wat meestal als zeer irritant bevonden wordt...
I know.. alleen de topic starter wilde het met javascript doen
Obelix en Idefix op 16/08/2012 08:03:26:
Bedenk wel dat niet iedereen netjes uitlogt maar tabblad/browser sluit.
En ingelogd wil niet zeggen dat iemand ook daadwerkelijk op de site actief is geweest.
En ingelogd wil niet zeggen dat iemand ook daadwerkelijk op de site actief is geweest.
Je zou toch gewoon een onunload function kunnen maken die op het laatste moment nog met AJAX je account netjes uitlogd.
Dan werkt het in beide gevallen.
Ik heb vroeger niet zo goede ervaringen gehad met events waarbij het venster wordt gesloten (en dergelijke).
Misschien moet ik nog eens testen.
Onunload werkt in de meeste browsers niet is mijn ervaring. Of is in het beste geval bijzonder onbetrouwbaar.
Nee ik heb het eigenlijk nog niet getest, maar in theorie zou het moeten werken ;)
nu; lichtjes off topic:
mocht je specifiek willen weten dat de gebruiker de site heeft open staan in een tabblad, maar totaal inactief is; hier een voorbeeldje
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
if (isset($_GET['inactive'])) {
// hier kan je de gebruiker als inactief zetten
echo 1;
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>uitloggen na inactiviteit</title>
</head>
<body>
<div id="status">actief</div>
<div id="counter"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function($) {
var timer = null, // timer object
counter = 0,
timerActive = true,
interval = 1000,
stopTime = 120; // aantal seconden waarna het inactief wordt
// een aantal events resetten de counter. Voel je vrij om er toe te voegen
$(window).mousemove(reset);
$(window).click(reset);
// trigger the timer when the page is loaded
inactive ();
function reset() {
counter = 0;
}
function inactive () {
if (counter++ >= stopTime) {
// de gebruiker heeft al een tijd niets gedaan
$.ajax({
url: '?inactive=1',
success: function(data) {
timerActive = false;
$('#status').html('inactief');
}
})
}
$('#counter').html(counter + ' / ' + stopTime);
if (timerActive == true) {
timer = setTimeout(inactive, interval);
}
}
});
</script>
</body>
</html>
if (isset($_GET['inactive'])) {
// hier kan je de gebruiker als inactief zetten
echo 1;
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>uitloggen na inactiviteit</title>
</head>
<body>
<div id="status">actief</div>
<div id="counter"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function($) {
var timer = null, // timer object
counter = 0,
timerActive = true,
interval = 1000,
stopTime = 120; // aantal seconden waarna het inactief wordt
// een aantal events resetten de counter. Voel je vrij om er toe te voegen
$(window).mousemove(reset);
$(window).click(reset);
// trigger the timer when the page is loaded
inactive ();
function reset() {
counter = 0;
}
function inactive () {
if (counter++ >= stopTime) {
// de gebruiker heeft al een tijd niets gedaan
$.ajax({
url: '?inactive=1',
success: function(data) {
timerActive = false;
$('#status').html('inactief');
}
})
}
$('#counter').html(counter + ' / ' + stopTime);
if (timerActive == true) {
timer = setTimeout(inactive, interval);
}
}
});
</script>
</body>
</html>
... dus ja, ik denk niet dat je hier veel aan hebt, maar je weet nooit