public static function userDeleteIdle()
 {
     $users_model = new UsersModel();
     $users_model->setCond('timestamp < "' . date('Y-m-d H:i:s', strtotime('-' . TIME_USER_IDLE . ' seconds')) . '"');
     $users_model->setFields(array('active'));
     $users_model->setData(array('active' => 0));
     $users = $users_model->load_all();
     if (count($users)) {
         foreach ($users as $load) {
             if (isset($_SESSION['chat_login']['timestamp']) && $load['timestamp'] >= $_SESSION['chat_login']['timestamp']) {
                 AlertModel::addExit($load['user'], $load['id'], $load['id_room']);
             }
         }
     }
     return $users_model->delete();
 }
Beispiel #2
0
<?php

require_once 'app/autoload.php';
if (isset($_SESSION['chat_login']['id_user'])) {
    // Return
    $return = '';
    // Update dos users
    $users = new UsersModel();
    $users->setFields(array('timestamp'));
    $users->setData(array('timestamp' => date('Y-m-d H:i:s')));
    $users->update($_SESSION['chat_login']['id_user']);
    // Lendo as messages
    $users = new UsersModel();
    $users->setCond('id_room = ' . $_SESSION['chat_login']['id_room']);
    $users->setCond('id != ' . $_SESSION['chat_login']['id_user']);
    $users->setCond('active = 1');
    $users->setOrderBy('user asc');
    $load = $users->load_all();
    $json = array();
    foreach ($load as $line) {
        // Retorno
        $user = Filters::convert(htmlentities($line['user']));
        $return .= '<a href="#" id="user_' . $line['id'] . '" rel="' . $line['id'] . '">' . $user . '</a>';
        $json[] = '["' . $line['id'] . '", "' . $user . '"]';
    }
    echo '[' . implode(',', $json) . ']';
} else {
    echo 'error';
}
Beispiel #3
0
     header('location: logout.php');
     exit;
 }
 // To user
 $users = new UsersModel();
 $users->setCond('id_room = ' . $_SESSION['chat_login']['id_room']);
 $users->setCond('id = ' . $to_user);
 $load = $users->load_all();
 // Checks if user belongs to the same room
 if (isset($load[0]) && count($load[0])) {
     $data = new StdClass();
     $data->timestamp = date('Y-m-d H:i:s');
     $fields = array_keys((array) $data);
     // Update timestamp of user
     $users = new UsersModel();
     $users->setFields($fields);
     $users->setData($data);
     $users->update($id_user);
     $send = true;
 } else {
     if ($to_user == 0) {
         $send = true;
     } else {
         $to_user = 0;
         $send = true;
     }
 }
 // Send message
 if (isset($send) && (!isset($_SESSION['chat_login']['last_send']) || isset($_SESSION['chat_login']['last_send']) && time() >= $_SESSION['chat_login']['last_send'])) {
     // Last message sent
     $_SESSION['chat_login']['last_send'] = $_SERVER['REQUEST_TIME'];
Beispiel #4
0
 // IP's bloqueados
 $ip_model = new IpBlockModel();
 $ip_model->setCond('ip = "' . $_SERVER['REMOTE_ADDR'] . '"');
 $ip = $ip_model->load_all();
 if (count($ip)) {
     $message = 'You are blocked from accessing chat.';
 } else {
     if (count($users) == 0) {
         $data = new StdClass();
         $data->user = $user;
         $data->id_room = $id_room;
         $data->ip = $_SERVER['REMOTE_ADDR'];
         $data->timestamp = date('Y-m-d H:i:s', time());
         $fields = array_keys((array) $data);
         $users_model = new UsersModel();
         $users_model->setFields($fields);
         $users_model->setData($data);
         if ($users_model->insert()) {
             $id_user = $users_model->getId();
             $_SESSION['chat_login']['id_user'] = $id_user;
             $_SESSION['chat_login']['user'] = $user;
             $_SESSION['chat_login']['id_room'] = $id_room;
             $_SESSION['chat_login']['room'] = $room['room'];
             $_SESSION['chat_login']['timestamp'] = $data->timestamp;
             $_SESSION['chat_login']['id_alert'] = array();
             $_SESSION['chat_login']['last'] = time();
             // Aviso da entry do user
             AlertModel::addEntry($user, $id_user, $id_room);
         }
     } else {
         $message = 'The chosen username is already in use, choose another to enter.';
Beispiel #5
0
 $keys = array_keys($get);
 switch ($keys[0]) {
     case 'delete':
         $id = (int) $_GET['delete'];
         if ($id) {
             $users = new UsersModel();
             $users->delete($id);
             $message = 'User deleted';
         }
         break;
     case 'block_user':
         $id = (int) $_GET['block_user'];
         if ($id) {
             $users = new UsersModel();
             $users->setData(array('active' => 0));
             $users->setFields(array('active'));
             $users->update($id);
             $message = 'User blocked';
         }
         break;
     case 'block_ip':
         $ip = $_GET['block_ip'];
         if ($ip) {
             $ip_block = new IpBlockModel();
             $ip_block->setCond('ip = "' . $ip . '"');
             $data = $ip_block->load_all();
             if (empty($data)) {
                 $data = new StdClass();
                 $data->ip = $ip;
                 $data->permanent = 0;
                 $data->timestamp = date('Y-m-d H:i:s');