gebruiker actief
weet een van jullie hoe dat moet ?
alvast bedankt
Zonder jouw script kunnen we niks...
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
include("config.php");
include("header.php");
include("menu.php");
if($_SESSION['logged_in'] == true)
{
echo 'You are already logged in!';
}
else
{
$_SESSION['logged_in'] = false;
if(isset($_POST['pass']) AND isset($_POST['name']))
{
$name = addslashes($_POST['name']);
$pass = addslashes($_POST['pass']);
$query = 'SELECT * FROM users WHERE name = "'.$name.'"';
$sql = mysql_query($query);
$true = mysql_num_rows($sql);
if(!$true)
{
echo 'Username doesn\'t exist!';
die ();
}
while($res = mysql_fetch_array($sql))
{
$username = $res['name'];
$password = $res['pass'];
$userid = $res['userid'];
}
$err = '';
if($username != $name)
{
$err .= 'Username isn\'t correct! <br>';
}
elseif($password != $pass)
{
$err .= 'Password isn\'t correct! <br>';
}
else
{
$_SESSION['username'] = $name;
$_SESSION['logged_in'] = true;
$_SESSION['member_id'] = $userid;
echo 'Logged in '.$_SESSION["username"].'! <br>';
}
echo $err;
}
else
{
?>
<p class='login'>
<form method='post'>
Username: <div class='username'><input type='text' name='name' /></div><br />
Password: <div class='password'><input type='password' name='pass' /></div><br />
<input type='submit' value='login' />
</p>
<form>
<?
}
}
?>
include("config.php");
include("header.php");
include("menu.php");
if($_SESSION['logged_in'] == true)
{
echo 'You are already logged in!';
}
else
{
$_SESSION['logged_in'] = false;
if(isset($_POST['pass']) AND isset($_POST['name']))
{
$name = addslashes($_POST['name']);
$pass = addslashes($_POST['pass']);
$query = 'SELECT * FROM users WHERE name = "'.$name.'"';
$sql = mysql_query($query);
$true = mysql_num_rows($sql);
if(!$true)
{
echo 'Username doesn\'t exist!';
die ();
}
while($res = mysql_fetch_array($sql))
{
$username = $res['name'];
$password = $res['pass'];
$userid = $res['userid'];
}
$err = '';
if($username != $name)
{
$err .= 'Username isn\'t correct! <br>';
}
elseif($password != $pass)
{
$err .= 'Password isn\'t correct! <br>';
}
else
{
$_SESSION['username'] = $name;
$_SESSION['logged_in'] = true;
$_SESSION['member_id'] = $userid;
echo 'Logged in '.$_SESSION["username"].'! <br>';
}
echo $err;
}
else
{
?>
<p class='login'>
<form method='post'>
Username: <div class='username'><input type='text' name='name' /></div><br />
Password: <div class='password'><input type='password' name='pass' /></div><br />
<input type='submit' value='login' />
</p>
<form>
<?
}
}
?>
Als het nog steeds niet lukt meld het even dan zoek ik even voor je!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//login.php
//als je ingelogd bent;
$update_query = "UPDATE users SET online = 'true' WHERE name = ".$name;
$update_sql = mysql_query($update_query);
//logout.php
//als je uitgelogd bent;
$update_query = "UPDATE users SET online = 'false' WHERE name = ".$name;
$update_sql = mysql_query($update_query);
?>
//login.php
//als je ingelogd bent;
$update_query = "UPDATE users SET online = 'true' WHERE name = ".$name;
$update_sql = mysql_query($update_query);
//logout.php
//als je uitgelogd bent;
$update_query = "UPDATE users SET online = 'false' WHERE name = ".$name;
$update_sql = mysql_query($update_query);
?>
Ivo schreef op 29.09.2008 16:44:
hoeft niet hoor, ik heb zelf al iets gevonden;
script ziet er leuk uit maar wat als iemand nou niet uitlogt ? maar gewoon ze browser afsluit ?!
Wie weet hoe je alle sessies(namen) uit kunt lezen en echoen?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<script>
function loguit
{
document.write("<?php mysql_query('UPDATE users SET online = "false" WHERE id = 1'); ?>");
}
</script>
<body onunload='loguit();'>
function loguit
{
document.write("<?php mysql_query('UPDATE users SET online = "false" WHERE id = 1'); ?>");
}
</script>
<body onunload='loguit();'>
Deze manier werkt wel... maar het is wel onveilig omdat ik zo de query prijsgeef voor de beetje hacker...
iemand ideeen om dat te voorkomen?
Gewijzigd op 01/01/1970 01:00:00 door Ivo K
EERST php uitvoeren
DAN HTML printen == javascript neerzetten
ALS LAATSTE (optioneel) eventueel uitvoeren van javascript (maar php-tijd is al lang voorbij!).
Dus bovenstaande werkt niet.
Wat je wel kan doen is op die plek (javascript) een extra pagina aanroepen, en die zal je uitloggen.
Rabobank telebankieren doet dat ook zo.
Echter dat idee van die extra pagina zie ik niet zo zitten. Zo omslachtig, moet toch makkelijker kunnen.
Ik denk dat ik gewoon 2 scriptjes maak:
- een script maak dat bij het betreden van een pagina de tijd in 'lastOnline' refresht;
- en een scriptje dat deze tijd vergelijkt met de daadwerkelijke tijd.
Echt lekker werkt dit helaas ook niet want als iemand wel online is, maar zijn pagina al een tijd niet heeft gerefresht of niet een andere pagina heeft bezocht wordt ondanks dat hij online is toch als offline weergegeven...
Het moet kunnen: phphulp beschikt ook over een dergelijk script (alle betere fora overigens).
Ivo schreef op 29.09.2008 16:44:
hoeft niet hoor, ik heb zelf al iets gevonden;
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//login.php
//als je ingelogd bent;
$update_query = "UPDATE users SET online = 'true' WHERE name = ".$name;
$update_sql = mysql_query($update_query);
//logout.php
//als je uitgelogd bent;
$update_query = "UPDATE users SET online = 'false' WHERE name = ".$name;
$update_sql = mysql_query($update_query);
?>
//login.php
//als je ingelogd bent;
$update_query = "UPDATE users SET online = 'true' WHERE name = ".$name;
$update_sql = mysql_query($update_query);
//logout.php
//als je uitgelogd bent;
$update_query = "UPDATE users SET online = 'false' WHERE name = ".$name;
$update_sql = mysql_query($update_query);
?>
Zoiets kan je gewoon gebruiken, maar je moet dat per per pageload doen. Als iemand 5 min geen nieuwe pagina heeft geladen, is hij offline...
Misschien is het handigste nog wel dat je gewoon een kolom (DATETIME) in de leden tabel maakt, met de laatste pageload. Dan kan je simpel met een SELECT QUERY selecteren welke leden de laatste 5 minuten een pagina hebben geladen.
Ivo schreef op 29.09.2008 17:57:
Deze manier werkt wel... maar het is wel onveilig omdat ik zo de query prijsgeef voor de beetje hacker...
iemand ideeen om dat te voorkomen?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<script>
function loguit
{
document.write("<?php mysql_query('UPDATE users SET online = "false" WHERE id = 1'); ?>");
}
</script>
<body onunload='loguit();'>
function loguit
{
document.write("<?php mysql_query('UPDATE users SET online = "false" WHERE id = 1'); ?>");
}
</script>
<body onunload='loguit();'>
Deze manier werkt wel... maar het is wel onveilig omdat ik zo de query prijsgeef voor de beetje hacker...
iemand ideeen om dat te voorkomen?
Zo heb ik dat op mn eigen site ook.
- in PHP per pageload.
- met AJAX