HEX
Server: Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 mod_fcgid/2.3.9 PHP/5.4.16
System: Linux dvm.vladweb.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: region-gk.ru (1016)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: //home/bk/efi/eficenter.ru/consultant/class/get_operator_new_messages.php
<?php
 header("Content-type: application/json"); class GetOperatorNewMess{ private $id_operator; public function __construct(){ if(isset($_SESSION['operator_id'])) $this->id_operator = intval($_SESSION['operator_id']); else die('In session no operator'); require 'mysql.php'; } public function getNewMess(){ $sql = "SELECT ok_users_chat.id_user, ok_users_chat.new_message_user, ok_users_chat.write_user, ok_users.user_name, ok_users.user_ip FROM ok_users_chat, ok_users WHERE ok_users_chat.id_operator = {$this->id_operator} AND ok_users.user_id = ok_users_chat.id_user OR ok_users_chat.id_operator = {$this->id_operator} AND ok_users_chat.write_user = '1' ORDER BY ok_users_chat.new_message_user DESC"; $mysql = Mysql::getInstance(); $mysql->exec("LOCK TABLES ok_messages WRITE, ok_users_chat WRITE, ok_users WRITE, ok_typing WRITE"); $result = $mysql->query($sql); if($result->rowCount() != 0){ while($res_arr = $result->fetch(PDO::FETCH_ASSOC)){ if($res_arr['new_message_user'] > 0){ $new_mess = intval($res_arr['new_message_user']); $user_id = intval($res_arr['id_user']); $sql = "SELECT id_user, wr_date, messages FROM ok_messages WHERE id_user = {$user_id} AND is_from = '1' ORDER BY wr_date DESC LIMIT {$new_mess}"; $res_mess = $mysql->query($sql); $messages[$user_id] = $res_mess->fetchAll(PDO::FETCH_ASSOC); $messages[$user_id] = array_reverse($messages[$user_id]); for($i = 0; $i < count($messages[$user_id]); $i++){ $messages[$user_id][$i]['wr_date'] = date("H:i:s",$messages[$user_id][$i]['wr_date']); } $messages[$user_id]['write_user'] = $res_arr['write_user']; if($res_arr['write_user'] == 1){ $messages[$user_id]['write_text'] = $this->getWriteText($user_id); } $messages[$user_id]['user_name'] = $res_arr['user_name']; $messages[$user_id]['user_ip'] = $res_arr['user_ip']; $this->updateNew(); }else{ $user_id = intval($res_arr['id_user']); $messages[$user_id]['write_user'] = $res_arr['write_user']; if($res_arr['write_user'] == 1){ $messages[$user_id]['write_text'] = $this->getWriteText($user_id); } $messages[$user_id]['user_name'] = $res_arr['user_name']; $messages[$user_id]['user_ip'] = $res_arr['user_ip']; } } $mysql->exec("UNLOCK TABLES"); echo json_encode($messages); exit; }else{ echo false; exit; } } private function updateNew(){ $sql = "UPDATE ok_users_chat SET new_message_user = '0' WHERE id_operator = {$this->id_operator}"; $mysql = Mysql::getInstance(); $mysql->exec($sql); } public function getWriteText($user_id){ $mysql = Mysql::getInstance(); $sql_t = "SELECT t_mess FROM ok_typing WHERE id_user = {$user_id}"; $result_t = $mysql->query($sql_t); $ress_array_t = $result_t->fetch(PDO::FETCH_ASSOC); return $ress_array_t['t_mess']; } } session_start(); if(isset($_SESSION['who']) AND $_SESSION['who'] == "operator"){ $load = new GetOperatorNewMess(); $load->getNewMess(); }else{ die('Error! Нельзя обращаться к файлу напрямую'); } ?>