Witam.
Napisałem owy skrypt mający na celu sprawdzanie użytkowników online.
<?php
include ('engine/config.php');
include ('lang/en/bloks.php');
echo $time_now_uo . '<br />'; $old_time_uo = time()-540;
if (isset ($_SESSION['user_id'])) { $uidc = $_SESSION['user_id'];
$sql_un = "SELECT username FROM " . $db_prefix . "users WHERE id='$uidc'";
$un = mysqli_query($dbc, $sql_un);
$username = mysqli_fetch_array($un);
$unl = $username['username'];
if($unl != false) {
$sql_uo_u = "UPDATE " . $db_prefix . "users_online SET time='$time_now_uo' WHERE username='$unl'";
mysqli_query($dbc, $sql_uo_u);
} else {
$sql_uo_a = "INSERT INTO " . $db_prefix . "users_online ('username' ,'time') VALUES ('$unl', '$time_now_uo')";
mysqli_query($dbc, $sql_uo_a);
}
}
$sql_uo_d = "DELETE FROM " . $db_prefix . "users_online WHERE time < '$old_time_uo'";
mysqli_query($dbc, $sql_uo_d);
$sql_sun = "SELECT username FROM " . $db_prefix."users_online ORDER BY username";
$sun = mysqli_query($dbc, $sql_sun);
if (mysqli_num_rows($sun) != 0) {
echo $lang_bloks_bstats_uo . ': '; while($user_name = mysqli_fetch_array($sun)) {
echo $user_name['username'] . ', '; }
} else {
echo $lang_bloks_bstats_nuo; }
?>
Niestety nie zupełnie działa i nie wiem dlaczego... Czy ktoś mógłby zdefiniować co zrobiłem źle?
Baza:
CREATE TABLE `frycms`.`fry_users_online` (
`username` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`time` INT NOT NULL ,
PRIMARY KEY ( `username` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Dzięki za pomoc.