stanimir_95
Registered
Здравейте, направих си система за показване на потребителите, които са онлайн. Проблемът е, че при логаут не се ъпдейтва полето logged от таблицата users и, съответно, като онлайн се показват и "logout"-нати потребители.
из login.php:
logout.php:
И показването на онлайн потребителите:
Ще съм благодарен, ако помогнете.
из login.php:
PHP:
<?php
if($_SESSION['logged']===true)
{
header('Location: index.php');
exit;
}
else
{
if($_POST['hidden']==1)
{
$user=addslashes(trim($_POST['user']));
$pass=trim($_POST['pass']);
if(strlen($user)<4)
{
$err[]='Кратко потр. име!';
}
if(strlen($pass)<4)
{
$err[]='Краткa парола!';
}
if(count($err)>0)
{
foreach($err as $v)
{
echo $v.'<br />';
}
}
else
{
$rs=mysql_query('SELECT * FROM users WHERE username="'.$user.'" AND pass="'.md5($pass).'"');
if(mysql_num_rows($rs)==0)
{
echo 'Грешно потребителско име или парола!';
}
else
{
$row=mysql_fetch_assoc($rs);
$_SESSION['logged']=true;
mysql_query('UPDATE users SET logged=1 WHERE username="'.$user.'"');
$_SESSION['user_info']=$row;
header('Location: index.php');
}
}
}
}
?>
<form action="" method="post" id="addform">
Име:<br />
<input type="text" name="user" /><br />
Парола:<br />
<input type="password" name="pass" /><br />
<input type="submit" value="Вход" /><br /><br />
<input type="hidden" value="1" name="hidden"/>
</form>
logout.php:
PHP:
<?php
session_start();
mysql_query('UPDATE users SET logged=0 WHERE username="'.$_SESSION['user_info']['username'].'"');
session_destroy();
header('Location: login.php');
exit;
?>
PHP:
<?php
$rs=mysql_query('SELECT username FROM users WHERE logged=1');
if(mysql_num_rows($rs)>0)
{
while($row=mysql_fetch_assoc($rs))
{
echo $row['username'].'<br />';
}
}
else echo 'Няма онлайн.';
?>