Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php eval("\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\..

Decoded Output download

?><?php if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) exit('No direct access allowed.');
include_once(dirname(__FILE__).'/../../../admin/config.php');
/** 
 * Database class
 */ 
class Bancadati {
   private $PDO;
   private $config;
   private $where;
     
	 public function __construct() {
	 
		if (!extension_loaded('pdo')) {
			
			die('The PDO extension is required.');
			
		}
	 //  $this->config = config_load('database');
	    $this->connect();
		}
   private function connect() {
	$driver = strtoupper('mysql');
		switch ($driver) {
              case 'MYSQL':
                 try {
					
					$this->PDO = new PDO('mysql:host=' . DB_HOSTNAME . ';dbname=' . DB_DATABASE, DB_USERNAME, DB_PASSWORD);
					//$this->PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
					$this->PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
					$this->PDO->query('SET NAMES utf8');				
					
				} catch (PDOException $exception) {
                      die($exception->getMessage());
				}
				return $this->PDO;
				
			break;

			default:
				die('This database driver does not support: mysql');

		}

	}
        
	/**
	 * Executes an sql statement
	 *
	 * @access public 
	 */
     public function query($statement) {
		
		try {
			
			return $this->PDO->query($statement);
		
		} catch (PDOException $exception) {
			
			die($exception->getMessage());
			
		}
		
	}

	/**
	 * Returns the number of rows affected
	 *
	 * @access public 
	 */	
    public function row_count($statement) {
	
		try {
		
			return $this->PDO->query($statement)->rowCount();

		} catch (PDOException $exception) {

			die($exception->getMessage());
			
		}

    }

	/**
	 * Execute query and return all rows in assoc array
	 *
	 * @access public 
	 */	
	public function fetch_all($statement, $fetch_style = PDO::FETCH_ASSOC) {
		
		try {
			
			return $this->PDO->query($statement)->fetchAll($fetch_style);

		} catch (PDOException $exception) {

			die($exception->getMessage());
			
		}
		
	}
	
	/**
	 * Execute query and return one row in assoc array
	 *
	 * @access public 
	 */
    public function fetch_row_assoc($statement) {
	
		try {
			
			return $this->PDO->query($statement)->fetch(PDO::FETCH_ASSOC);

		} catch (PDOException $exception) {

			//die($exception->getMessage());
			echo $exception->getMessage();
		}
		
    }

	/**
	 * Returns the id of the last inserted row
	 *
	 * @access public
	 */
	public function last_insert_id() {
		
		return $this->PDO->lastInsertId();
	
	}

	/**
	 * Builds the where statements to a sql query
	 * 
	 * @access public
	 */ 	
	public function where($value) {

		$this->where = $value;
		
		return $this;
		
	}
	
	/**
	 * Insert a value into a table
	 * 
	 * @access public
	 */ 
	public function insert($table, $values) {			
	
		try {
		
			foreach ($values as $key => $value) {
				
				$field_names[] = $key . ' = :' . $key;
				
			}
			
			$sql = "INSERT INTO " . $table . " SET " . implode(', ', $field_names);

			$stmt = $this->PDO->prepare($sql);
			
			foreach ($values as $key => $value) {
				
				$stmt->bindValue(':' . $key, $value);
				
			}
			
			$stmt->execute();

		} catch (PDOException $exception) {

			die($exception->getMessage());
			
		}

	}
	
	/**
	 * Update a value in a table
	 * 
	 * @access public
	 */ 
	public function update($table, $values) {

		try {

			foreach ($values as $key => $value) {
				
				$field_names[] = $key . ' = :' . $key;
				
			}
			
			$sql  = "UPDATE " . $table . " SET " . implode(', ', $field_names) . " ";
			
			$counter = 0;
			
			foreach ($this->where as $key => $value) {

				if ($counter == 0) {
					
					$sql .= "WHERE {$key} = :{$key} ";
					
				} else {
					
					$sql .= "AND {$key} = :{$key} ";
					
				}
				
				$counter++;
				
			}
			
			$stmt = $this->PDO->prepare($sql);
			
			foreach ($values as $key => $value) {
				
				$stmt->bindValue(':' . $key, $value);
				
			}
			
			foreach ($this->where as $key => $value) {
				
				$stmt->bindValue(':' . $key, $value);
				
			}
			
			$stmt->execute();

		} catch (PDOException $exception) {

			die($exception->getMessage());
			
		}

	}

	/**
	 * Delete a record
	 * 
	 * @access public
	 */ 
	public function delete($table) {

		$sql = "DELETE FROM " . $table . " ";
		
		$counter = 0;
		
		foreach ($this->where as $key => $value) {

			if ($counter == 0) {
				
				$sql .= "WHERE {$key} = :{$key} ";
				
			} else {
				
				$sql .= "AND {$key} = :{$key} ";
				
			}
			
			$counter++;
			
		}
		
		$stmt = $this->PDO->prepare($sql);
		
		foreach ($this->where as $key => $value) {
			
			$stmt->bindValue(':' . $key, $value);
			
		}

		$stmt->execute();

    }

}
/*sessione*/
class Sessione {
	 public function __construct() {	
		
		if (!session_id()) {
			
			session_start();
			}
		}
	 public function set($name, $value) {
	
		$_SESSION[$name] = $value;
	
	}
   public function get($name) {
	
		if (isset($_SESSION[$name])) {
			
			return $_SESSION[$name];
			
		} else {
			
			return false;
			
		}
		
	}
    public function delete($name) {
	    unset($_SESSION[$name]);
	
	}
    public function destroy() {
		
		$_SESSION = array();
		session_destroy();
		
	}
	
}
/** 
 * Template class
 */ 
class Template {
    private $tpl_path;
	private $values = array();
    public function __construct() {
		
      $this->tpl_path =  dirname(__FILE__).'/../';
	}

	/**
	 * Set a template variable
	 * 
	 * @access public
	 */
	public function set($name, $value = null) {
		
		if (is_array($name)) {
		
			foreach ($name as $key => $value) {
			
				$this->values[$key] = $value;
			
			}
		
		} else {
			
			$this->values[$name] = $value;
			
		}
		
    }

	/**
	 * Display the template file
	 * 
	 * @access public
	 */
	public function display($template, $return_string = false) {

		if ($this->values) {
			
			extract($this->values);
			
		}
		
		if (file_exists($this->tpl_path . $template)) {

			ob_start();

			include($this->tpl_path . $template);

			$output = ob_get_contents();

			ob_end_clean();
			
		} else {
			
			die('Template file '. $this->tpl_path . $template . ' not found.');
			
		}

		if ($return_string) {
			
			return $output;
			
		} else {
			
			echo $output;
			
		}
		
	} 

}
/** 
 * Chat class
 */ 
class Chat {

	/**
	 * Database
	 * 
	 * @access private
	 */
	private $dba;
   
	/**
	 * Session
	 * 
	 * @access private
	 */
	private $session;

	/**
	 * Template
	 * 
	 * @access private
	 */
	private $tpl;

	/**
	 * Constructor
	 * 
	 * @access public
	 */
	public function __construct() {
		
		$this->dba = new Bancadati();
		$this->session = new Sessione();
		$this->tpl = new Template();
		
	}

	/**
	 * Visitor get chat status
	 * 
	 * @access public
	 */
	public function visitor_get_chat_status($json = FALSE) {

	
		$result = $this->dba->fetch_row_assoc("SELECT MAX(last_activity) AS last_activity FROM zen_operators");
		
		

		if ($this->session->get('visitor_chat_id')) {
			
			$result = $this->dba->fetch_row_assoc("SELECT department_name FROM zen_chat WHERE chat_id = '" . $this->session->get('visitor_chat_id') . "'");
			
			$data = array(
				'success' => TRUE, 
				'content' => translate('Chat started with: ', TRUE) . $result['department_name']
			);

		
			 } elseif ($result['last_activity'] == false || $this->count_visitors() >= get_option('max_visitors', TRUE)) {

			$data = array(
				'success' => FALSE 
				
			);

		} else {

			$data = array(
				'success' => TRUE, 
				'content' => translate('Questions? Need help? Click here to chat with us!', TRUE)
			);

		}
		
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}

	

	/**
	 * Visitor contact operator
	 * 
	 * @access public
	 */
	public function visitor_contact_operator($json = FALSE) {

	

		/*	$result = $this->dba->fetch_row_assoc("SELECT MAX(last_activity) AS last_activity FROM " . config_item('database', 'table_prefix') . "operators WHERE hide_online = 0");*/
			$result = $this->dba->fetch_row_assoc("SELECT MAX(last_activity) AS last_activity FROM zen_operators");
		//	$total = time() - $result['last_activity'];

			if ($this->session->get('visitor_chat_id')) {

				$result = $this->dba->fetch_row_assoc("SELECT department_name FROM zen_chat WHERE chat_id = '" . $this->session->get('visitor_chat_id') . "'");

				$data = array(
					'success' => TRUE,
					'content' => $this->tpl->display('tpl/chat.tpl', TRUE),
					'department_name' => translate('Chat started with: ', TRUE) . $result['department_name']
				);

		//	} elseif ($total > get_option('online_status', TRUE) || $this->count_visitors() >= get_option('max_visitors', TRUE)) {
			} elseif ($result['last_activity'] == false|| $this->count_visitors() >= get_option('max_visitors', TRUE)) {

				$sql = "SELECT d.department_id, d.department_name FROM zen_departments d JOIN zen_department_operators do ON d.department_id = do.department_id GROUP BY d.department_name ORDER BY d.department_id ASC";
				
				$departments = array();
				
				foreach ($this->dba->query($sql) as $row) {
					
					$departments[] = array(
						'department_id'		=> $row['department_id'],
						'department_name'	=> $row['department_name']
					);
					
				}

				$this->tpl->set('departments', $departments);

				$data = array(
					'success' => FALSE 
					//'content' => $this->tpl->display('offline', TRUE)
					
				);

			} else {

			/*	$sql = "SELECT MAX(o.last_activity) AS last_activity, d.department_id, d.department_name FROM " . config_item('database', 'table_prefix') . "operators o JOIN " . config_item('database', 'table_prefix') . "department_operators do ON o.operator_id = do.operator_id JOIN " . config_item('database', 'table_prefix') . "departments d ON do.department_id = d.department_id WHERE o.hide_online = 0 GROUP BY d.department_name ORDER BY o.last_activity DESC";*/
			
			$sql = "SELECT MAX(o.last_activity) AS last_activity, d.department_id, d.department_name FROM zen_operators o JOIN zen_department_operators do ON o.operator_id = do.operator_id JOIN zen_departments d ON do.department_id = d.department_id GROUP BY d.department_name ORDER BY o.last_activity DESC";
				
				$departments = array();
				
				foreach ($this->dba->query($sql) as $row) {
					
					$total = $row['last_activity'];
					
					$departments[] = array(
						'total'				=> $total,
						'department_id'		=> $row['department_id'],
						'department_name'	=> $row['department_name']
					);
					
				}
				
				$this->tpl->set('departments', $departments);

				$data = array(
					'success' => FALSE, 
					'content' => $this->tpl->display('tpl/online.tpl', TRUE)
				);

			}
			
		//}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}

	/**
	 * Visitor start chat
	 * 
	 * @access public
	 */
	public function visitor_start_chat($department_id, $username, $email, $message, $json = FALSE) {
		
		$department_id = filter_var($department_id, FILTER_SANITIZE_STRING);
		$username = filter_var($username, FILTER_SANITIZE_STRING);
		$email = filter_var($email, FILTER_SANITIZE_EMAIL);
		$message = filter_var($message, FILTER_SANITIZE_STRING);
		
		/*$result = $this->dba->fetch_row_assoc("SELECT MAX(o.last_activity) AS last_activity FROM " . config_item('database', 'table_prefix') . "operators o JOIN " . config_item('database', 'table_prefix') . "department_operators do ON do.department_id = '" . $department_id . "' WHERE o.hide_online = 0 AND do.operator_id = o.operator_id");*/
		
		$result = $this->dba->fetch_row_assoc("SELECT MAX(o.last_activity) AS last_activity FROM zen_operators o JOIN zen_department_operators do ON do.department_id = '" . $department_id . "' WHERE do.operator_id = o.operator_id");

		$total = time() - $result['last_activity'];

	//if ($total > get_option('online_status', TRUE) || $this->count_visitors() >= get_option('max_visitors', TRUE)) {
		if ($result['last_activity'] == false || $this->count_visitors() >= get_option('max_visitors', TRUE)) {

			$sql = "SELECT d.department_id, d.department_name FROM zen_departments d JOIN zen_department_operators do ON d.department_id = do.department_id GROUP BY d.department_name ORDER BY d.department_id ASC";
			
			$departments = array();
			
			foreach ($this->dba->query($sql) as $row) {
				
				$departments[] = array(
					'department_id'		=> $row['department_id'],
					'department_name'	=> $row['department_name']
				);
				
			}

			$this->tpl->set('departments', $departments);
			
			$data = array(
				'success' => FALSE
			//	'content' => $this->tpl->display('offline', TRUE), 
			//	'message' => translate('Contact us - Offline', TRUE)
			);

		} elseif ($this->dba->row_count("SELECT ip_address FROM zen_chat WHERE ip_address = '" . $_SERVER['REMOTE_ADDR'] . "' AND chat_status = 0 OR chat_status = 2") >= get_option('max_connections', TRUE)) {

			$data = array(
				'success' => FALSE, 
				'content' => translate('Too many requests are being made from your IP address.', TRUE), 
				'message' => translate('Questions? Need help? Click here to chat with us!', TRUE)
			);

		} else {

			if ($this->session->get('chat_hash')) {

				$chat_hash = $this->session->get('chat_hash');
				
			} else { 

				$chat_hash = uniqid();
				$this->session->set('chat_hash', $chat_hash);
				
			}

			if (!$this->session->get('username')) {
				
				$this->session->set('username', $username);
				
			}
			
			if ($this->dba->row_count("SELECT chat_hash FROM zen_chat WHERE chat_hash = '" . $chat_hash . "'") > 0) {

				$result = $this->dba->fetch_row_assoc("SELECT chat_id FROM zen_chat WHERE chat_hash = '" . $chat_hash . "'");
				
				$values = array(
					'chat_id'	=> $result['chat_id'],
					'message'	=> $message,
					'time'		=> time()
				); 			

				$this->dba->insert('zen_messages', $values);
				
			} else {
				
				$result = $this->dba->fetch_row_assoc("SELECT department_name FROM zen_departments WHERE department_id = '" . $department_id . "'");
				
				$values = array(
					'chat_status'			=> 0,
					'chat_hash'				=> $chat_hash,
					'time_start'			=> time(),
					'last_activity'			=> time(),
					'ip_address'			=> $_SERVER['REMOTE_ADDR'],
					'email'					=> $email,
					'username'				=> $this->session->get('username'),
					'referer'				=> $_SERVER['HTTP_REFERER'],
					'department_name'		=> $result['department_name'],
					'department_id'			=> $department_id
				); 			

				$this->dba->insert('zen_chat', $values);

				$chat_id = $this->dba->last_insert_id();

				$values = array(
					'chat_id'	=> $chat_id,
					'message'	=> $message,
					'time'		=> time()
				); 			

				$this->dba->insert('zen_messages', $values);

			}

			if (!$this->session->get('visitor_chat_id')) {
				
				$this->session->set('visitor_chat_id', $chat_id);
				
			}
			
			$result = $this->dba->fetch_row_assoc("SELECT department_name FROM zen_departments WHERE department_id = '" . $department_id . "'");

			$data = array(
				'success' => TRUE,
				'content' => $this->tpl->display('tpl/chat.tpl', TRUE),
				'department_name' => translate('Chat started with: ', TRUE) . $result['department_name']
			);

		}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}

	/**
	 * Visitor stop chat
	 * 
	 * @access public
	 */
	public function visitor_stop_chat($json = FALSE) {

		$result = $this->dba->fetch_row_assoc("SELECT chat_status FROM zen_chat WHERE chat_id = '" . $this->session->get('visitor_chat_id') . "'");

		$values = array(
			'chat_status' => 3
		); 			

		if ($result['chat_status'] != 3) {
			
			$values['time_end'] = time();
			
		}
		
		$where = array(
			'chat_id' => $this->session->get('visitor_chat_id')
		);

		$this->dba->where($where);
		$this->dba->update('zen_chat', $values);

		$values = array(
			'chat_id'	=> $this->session->get('visitor_chat_id'),
			'message'	=> translate('User has left the chat', TRUE),
			'time'		=> time()
		); 			

		$this->dba->insert('zen_messages', $values);

		$this->session->delete('username');
		$this->session->delete('chat_hash');
		$this->session->delete('operator_last_message_id[' . $this->session->get('visitor_chat_id') . ']');
		$this->session->delete('visitor_chat_id');
		
		$data = array('success' => TRUE);
		
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}

	/**
	 * Visitor send message
	 * 
	 * @access public
	 */
	public function visitor_send_message($message, $json = FALSE) {

		$message = filter_var($message, FILTER_SANITIZE_STRING);
		
		if ($this->session->get('visitor_chat_id')) {
			
			$values = array(
				'chat_id'	=> $this->session->get('visitor_chat_id'),
				'message'	=> $message,
				'time'		=> time()
			); 			

			$this->dba->insert('zen_messages', $values);

			$values = array(
				'user_typing'	=> 0,
				'last_activity'	=> time()
			); 			

			$where = array(
				'chat_id' => $this->session->get('visitor_chat_id')
			);

			$this->dba->where($where);
			$this->dba->update('zen_chat', $values);
			
			$data = array(
				'success' => TRUE
			);
			
		} else {
			
			$data = array(
				'success' => FALSE
			);
			
		}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}

	/**
	 * Visitor typing
	 * 
	 * @access public
	 */
	public function visitor_typing($visitor_typing, $json = FALSE) {
		
		$visitor_typing = filter_var($visitor_typing, FILTER_SANITIZE_STRING);
		
		if ($this->session->get('visitor_chat_id')) {
			
			$values = array(
				'user_typing' => $visitor_typing
			); 			

			$where = array(
				'chat_id' => $this->session->get('visitor_chat_id')
			);

			$this->dba->where($where);
			$this->dba->update('zen_chat', $values);
			
			$data = array(
				'success' => TRUE
			);
			
		} else {
			
			$data = array(
				'success' => FALSE
			);
			
		}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}

	/**
	 * Visitor get chat
	 * 
	 * @access public
	 */
	public function visitor_get_chat($json = FALSE) {

		$result = $this->dba->fetch_row_assoc("SELECT last_activity FROM zen_chat WHERE chat_id = '" . $this->session->get('visitor_chat_id') . "'");
		
		$total = time() - $result['last_activity'];
		
		if ($total > get_option('chat_expire', TRUE)) {

			$this->session->delete('username');
			$this->session->delete('chat_hash');
			$this->session->delete('operator_last_message_id[' . $this->session->get('visitor_chat_id') . ']');
			$this->session->delete('visitor_chat_id');
			
			$data = array(
				'success' => FALSE
			);
			
		} else {

			$sql = "SELECT m.message, m.time, m.operator_name, c.username FROM zen_messages m JOIN zen_chat c ON m.chat_id = c.chat_id WHERE m.chat_id = '" . $this->session->get('visitor_chat_id') . "' ORDER BY m.message_id ASC";

			if ($this->dba->row_count($sql) > 0) {
				
				$messages = array();
				
				foreach ($this->dba->query($sql) as $row) {
					
					if ($row['operator_name'] == '') {
						
						$name = $row['username'];
						
					} else {
					
						$name = $row['operator_name'];
						
					}
					
					$messages[] = array(
						'message'	=> $row['message'],
						'name'		=> $name,
						'time'		=> date('H:i:s', $row['time'])
					);
					
				}
				
				$this->tpl->set('messages', $messages);

				$data = array(
					'success' => TRUE, 
					'content' => $this->tpl->display('tpl/chat_messages.tpl', TRUE)
				);
				
			} else {
				
				$data = array(
					'success' => FALSE
				);
				
			}

			$result = $this->dba->fetch_row_assoc("SELECT chat_status, operator_typing FROM zen_chat WHERE chat_id = '" . $this->session->get('visitor_chat_id') . "'");

			if ($result['chat_status'] == 0) {
				
				$data['queue'] = 0;
				
			} else {
			
				$data['queue'] = 1;
				
			}

			if ($result['operator_typing']) {
				
				$data['operator_typing'] = 1;
				
			} else {
				
				$data['operator_typing'] = 0;
				
			}
			
			$result = $this->dba->fetch_row_assoc("SELECT message_id FROM zen_messages WHERE chat_id = '" . $this->session->get('visitor_chat_id') . "' ORDER BY message_id DESC LIMIT 1");
		
			$data['last_id'] = $result['message_id'];

			if (!$this->session->get('operator_last_message_id[' . $this->session->get('visitor_chat_id') . ']')) {
				
				$this->session->set('operator_last_message_id[' . $this->session->get('visitor_chat_id') . ']', 0);
			
			}
			
			if ($result['message_id'] > $this->session->get('operator_last_message_id[' . $this->session->get('visitor_chat_id') . ']')) {
				
				$data['new_message'] = 1;
				$this->session->set('operator_last_message_id[' . $this->session->get('visitor_chat_id') . ']', $result['message_id']);

			}
			
		}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
/**
	 * Operator get pending chat
	 * 
	 * @access public
	 */
	public function operator_get_pending_chat($json = FALSE) {

		$this->dba->query("UPDATE zen_chat SET chat_status = 3, time_end = UNIX_TIMESTAMP() WHERE chat_status != 3 AND chat_status != 1 AND last_activity < (UNIX_TIMESTAMP() - " . get_option('chat_expire', TRUE) . ")");

		$sql = "SELECT * FROM zen_chat c JOIN zen_department_operators do ON c.department_id = do.department_id JOIN zen_operators o ON do.operator_id = o.operator_id WHERE c.chat_status != 3 AND c.chat_status != 1 AND o.user_id = '" . $this->session->get('user_id') . "'";

		if ($this->dba->row_count($sql) > 0) {
			
			$pending_chat = array();
			
			foreach ($this->dba->query($sql) as $row) {
				
				$pending_chat[] = array(
					'chat_id'			=> $row['chat_id'],
					'chat_status'		=> $row['chat_status'],
					'username'			=> $row['username'],
					'ip_address'		=> $row['ip_address'],
					'department_name'	=> $row['department_name'],
					'elapsed_time'		=> elapsed_time(time(), $row['time_start'])
				);
				
			}
			
			$this->tpl->set('pending_chat', $pending_chat);

			$data = array(
				'success' => TRUE, 
				'content' => $this->tpl->display('tpl/admin/pending_chat.tpl', TRUE)
			);
			
		} else {
			
			$data = array(
				'success' => FALSE, 
				'content' => translate('The list of awaiting visitors is empty.', TRUE)
			);
			
		}

		$result = $this->dba->fetch_row_assoc("SELECT chat_id FROM zen_chat ORDER BY chat_id DESC LIMIT 1");

		$data['last_chat_id'] = $result['chat_id'];
           
		if (!$this->session->get('last_chat_id')) {
			
			$this->session->set('last_chat_id', 0);
			
		}
		
		if ($result['chat_id'] > $this->session->get('last_chat_id') || $result['chat_id'] == '') {
			
			$data['new_chat'] = 1;
			$this->session->set('last_chat_id', $result['chat_id']);
			
		}
              
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}

	/**
	 * Operator get online visitors
	 * 
	 * @access public
	 */
	public function operator_get_online_visitors($json = FALSE) {

		foreach ($this->dba->query("SELECT visitor_id, time FROM zen_online_visitors") as $row) {
			
			$total = time() - $row['time'];
			
			if ($total > 120) {
				
				$where = array(
					'visitor_id' => $row['visitor_id']
				);
				
				$this->dba->where($where);
				$this->dba->delete('zen_online_visitors');
				
			}
			
		}

		$sql = "SELECT DISTINCT ip_address, referer FROM zen_online_visitors";

		if ($this->dba->row_count($sql) > 0) {
			
			$online_visitors = array();
			
			foreach ($this->dba->query($sql) as $row) {

				$online_visitors[] = array(
					'ip_address'	=> $row['ip_address'],
					'referer'		=> $row['referer']
				);
				
			}
			
			$this->tpl->set('online_visitors', $online_visitors);
			
			$data = array(
				'success' => TRUE, 
				'content' =>  array()  // $this->tpl->display('admin/online_visitors', TRUE)
			);
			foreach($online_visitors as $valore){
				$val = (strlen($valore['referer']) > 20)? substr($valore['referer'], 0, 16) .'...' : $valore['referer'] ;
$data['content'][] = '<li><span class="indirizzo">'.$valore['ip_address'].'</span><span class="pagina"><a href="'.$valore['referer'].'" target="_blank">'.$val.'</a></span></li>';
				
			}
		} else {
			
			$data = array(
				'success' => FALSE, 
				'content' => '<li id="nobody">'.translate('No visitors.', TRUE).'</li>'
			);
			
		}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator get status
	 * 
	 * @access public
	 */
	public function operator_get_status($json = FALSE) {

		$sql = "SELECT last_activity FROM zen_operators WHERE user_id = '" . $this->session->get('user_id') . "'";

		if ($this->dba->row_count($sql) > 0) {
			
			$result = $this->dba->fetch_row_assoc($sql);
			
			$total = time() - $result['last_activity'];
			
		// zen	if ($total > get_option('online_status', TRUE)) {
			
			if ($result['last_activity'] == false) {

				$data = array(
					'success' => TRUE, 
					'content' => translate('You are offline', TRUE)
				);
				
			} else {
				
				$data = array(
					'success' => FALSE, 
					'content' => translate('You are online', TRUE)
				);
				
			}
		
		} else {
			
			$data = array(
				'success' => FALSE, 
				'content' => ''
			);
			
		}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator get online departments
	 * 
	 * @access public
	 */
	public function operator_get_online_departments($json = FALSE) {
		
		$departments = array();

		/*foreach ($this->dba->query("SELECT MAX(o.last_activity) AS last_activity, d.department_id, d.department_name FROM " . config_item('database', 'table_prefix') . "operators o JOIN " . config_item('database', 'table_prefix') . "department_operators do ON o.operator_id = do.operator_id JOIN " . config_item('database', 'table_prefix') . "departments d ON do.department_id = d.department_id WHERE o.hide_online = 0 GROUP BY d.department_name ORDER BY d.department_id ASC") as $row) {*/
			foreach ($this->dba->query("SELECT MAX(o.last_activity) AS last_activity, d.department_id, d.department_name FROM zen_operators o JOIN zen_department_operators do ON o.operator_id = do.operator_id JOIN zen_departments d ON do.department_id = d.department_id GROUP BY d.department_name ORDER BY d.department_id ASC") as $row) {
			
              if($row['last_activity'] == false) {
		       $data = array(
					'success' => FALSE,
					'content' => array()
				);			
                    foreach($departments as $value){
				$data['content'][] = '<li><a data-id=' . $value["department_id"] . ' class="transfer_chat"> ' .$value['department_name'] .'</a></li>'  ;
				         } 
			} else {

				$departments[] = array(
					'department_id'		=> $row['department_id'],
					'department_name'	=> $row['department_name']
				);
				
				
				
				$data = array(
					'success' => TRUE, 
					'content' => array()
	              
				);
				foreach($departments as $value){
				$data['content'][] = '<li><a data-id=' . $value["department_id"] . ' class="transfer_chat"> ' .$value['department_name'] .'</a></li>'  ;
				}
			}

		}
			
		if ($json) {
			
			echo json_encode($data);
			
		} else {
	
			return $data;
			
		}

	}
	
	/**
	 * Operator start chat
	 * 
	 * @access public
	 */
	public function operator_start_chat($chat_id, $json = FALSE) {
		
		$chat_id = filter_var($chat_id, FILTER_SANITIZE_STRING);
		
		if ($this->dba->row_count("SELECT chat_id FROM zen_chat WHERE chat_id = '" . $chat_id . "'") > 0) {
			
			$values = array(
				'chat_id'		=> $chat_id,
				'message'		=> '<script>$(function(){$("#tesa").parent().remove();});</script><span id="tesa"></span>',
				'operator_name'	=> $this->operator_get_full_name($this->session->get('user_id'), TRUE),
				'time'			=> time()
			); 			

			$this->dba->insert('zen_messages', $values);

			$values = array(
				'chat_status'	=> 2,
				'last_activity'	=> time()
			); 			

			$where = array(
				'chat_id' => $chat_id
			);

			$this->dba->where($where);
			$this->dba->update('zen_chat', $values);
			
			$this->session->set('chat_id', $chat_id);

			$data = array(
				'success' => TRUE
			);
		
		} else {
			
			$data = array(
				'success' => FALSE
			);
			
		}
	
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator open chat
	 * 
	 * @access public
	 */
	public function operator_open_chat($chat_id, $json = FALSE) {
		
		$chat_id = filter_var($chat_id, FILTER_SANITIZE_STRING);
		
		if ($this->dba->row_count("SELECT chat_id FROM zen_chat WHERE chat_id = '" . $chat_id . "'") > 0) {
			
			$this->session->set('chat_id', $chat_id);

			$data = array(
				'success' => TRUE
			);
			
		} else {
			
			$data = array(
				'success' => FALSE
			);
			
		}
		
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator watch chat
	 * 
	 * @access public
	 */
	public function operator_watch_chat($chat_id, $json = FALSE) {
		
		$chat_id = filter_var($chat_id, FILTER_SANITIZE_STRING);
		
		if ($this->dba->row_count("SELECT chat_id FROM zen_chat WHERE chat_id = '" . $chat_id . "'") > 0) {
			
			$this->session->set('chat_id', $chat_id);

			$data = array(
				'success' => TRUE
			);
		
		} else {
			
			$data = array(
				'success' => FALSE
			);
			
		}
		
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator stop chat
	 * 
	 * @access public
	 */
	public function operator_stop_chat($json = FALSE) {
		
		if ($this->session->get('chat_id')) {
			
			$result = $this->dba->fetch_row_assoc("SELECT chat_status FROM zen_chat WHERE chat_id = '" . $this->session->get('chat_id') . "'");
			
			$values = array(
				'chat_status' => 3
			); 			

			if ($result['chat_status'] != 3) {
				
				$values['time_end'] = time();
				
			}
			
			$where = array(
				'chat_id' => $this->session->get('chat_id')
			);

			$this->dba->where($where);
			$this->dba->update('zen_chat', $values);

			$values = array(
				'chat_id'		=> $this->session->get('chat_id'),
				'message'		=> '<span id="fine">'.translate('Operator has left the chat', TRUE).'</span>'.'<script>$(function(){$(".utente_area,.utente_send").prop("disabled",true);$("#fine").parent().children(".username").remove()});</script>',
				'operator_name' => $this->operator_get_full_name($this->session->get('user_id'), TRUE),
				'time'			=> time()
			); 			

			$this->dba->insert('zen_messages', $values);
			
			$this->session->delete('visitor_last_message_id[' . $this->session->get('chat_id') . ']');
			$this->session->delete('chat_id');

			$data = array(
				'success' => TRUE
			);
			
		} else {
			
			$data = array(
				'success' => FALSE
			);
			
		}
		
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator send message
	 * 
	 * @access public
	 */
	public function operator_send_message($message, $json = FALSE) {

		$message = filter_var($message, FILTER_SANITIZE_STRING);
		
		$values = array(
			'chat_id'		=> $this->session->get('chat_id'),
			'message'		=> $message,
			'operator_name'	=> $this->operator_get_full_name($this->session->get('user_id'), TRUE),
			'time'			=> time()
		); 			
			
		$this->dba->insert('zen_messages', $values);

		$values = array(
			'last_activity'	=> time()
		); 			

		$where = array(
			'user_id' => $this->session->get('user_id')
		);

		$this->dba->where($where);
		$this->dba->update('zen_operators', $values);

		$values = array(
			'operator_typing'	=> 0,
			'last_activity'		=> time()
		); 			

		$where = array(
			'chat_id' => $this->session->get('chat_id')
		);

		$this->dba->where($where);
		$this->dba->update('zen_chat', $values);

		$data = array(
			'success' => TRUE
		);

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator typing
	 * 
	 * @access public
	 */
	public function operator_typing($operator_typing, $json = FALSE) {
		
		$operator_typing = filter_var($operator_typing, FILTER_SANITIZE_STRING);
		
		$values = array(
			'operator_typing' => $operator_typing
		); 			

		$where = array(
			'chat_id' => $this->session->get('chat_id')
		);

		$this->dba->where($where);
		$this->dba->update('zen_chat', $values);

		$data = array(
			'success' => TRUE
		);

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator get chat
	 * 
	 * @access public
	 */
	public function operator_get_chat($json = FALSE) {

		$result = $this->dba->fetch_row_assoc("SELECT last_activity FROM zen_chat WHERE chat_id = '" . $this->session->get('chat_id') . "'");
		
		$total = time() - $result['last_activity'];
		
		if ($total > get_option('chat_expire', TRUE)) {

			$this->session->delete('visitor_last_message_id[' . $this->session->get('chat_id') . ']');
			$this->session->delete('chat_id');
			
			$data = array(
				'success' => FALSE
			);
			
		} else {
			
			$sql = "SELECT m.message, m.time, m.operator_name, c.username FROM zen_messages m JOIN zen_chat c ON m.chat_id = c.chat_id WHERE m.chat_id = '" . $this->session->get('chat_id') . "' ORDER BY m.message_id ASC";

			if ($this->dba->row_count($sql) > 0) {
				
				$messages = array();
				
				foreach ($this->dba->query($sql) as $row) {
					
					if ($row['operator_name'] == '') {
						
						$name = $row['username'];
						
					} else {
					
						$name = $row['operator_name'];
						
					}
					
					$messages[] = array(
						'message'	=> $row['message'],
						'name'		=> $name,
						'time'		=> date('H:i:s', $row['time'])
					);
					
				}
				
				$this->tpl->set('messages', $messages);
				
				$data = array(
					'success' => TRUE, 
					'content' => array() 
				);
				foreach($messages as $message){
					$data['content'][] = '<div class="riga_zenchat"><div class="time">'. $message['time'].'</div><span class="username">'. $message['name'].':&nbsp;</span>'. $message['message'] .'</div>';
					
					
				}
			} else {
				
				$data = array(
					'success' => FALSE
				);
				
			}

			$result = $this->dba->fetch_row_assoc("SELECT user_typing FROM zen_chat WHERE chat_id = '" . $this->session->get('chat_id') . "'");

			if ($result['user_typing']) {
				
				$data['user_typing'] = 1;
				
			} else {
			
				$data['user_typing'] = 0;
				
			}
			
			$result = $this->dba->fetch_row_assoc("SELECT message_id FROM zen_messages WHERE chat_id = '" . $this->session->get('chat_id') . "' ORDER BY message_id DESC LIMIT 1");

			$data['last_id'] = $result['message_id'];
			
			if (!$this->session->get('visitor_last_message_id[' . $this->session->get('chat_id') . ']')) {
				
				$this->session->set('visitor_last_message_id[' . $this->session->get('chat_id') . ']', 0);
				
			}
			
			if ($result['message_id'] > $this->session->get('visitor_last_message_id[' . $this->session->get('chat_id') . ']')) {
				
				$data['new_message'] = 1;
				$this->session->set('visitor_last_message_id[' . $this->session->get('chat_id') . ']', $result['message_id']);

			}

		}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Operator update status
	 * 
	 * @access public
	 */
	public function operator_update_status($json = FALSE) {
		
		if ($this->session->get('user_id')) {
			
			$result = $this->dba->fetch_row_assoc("SELECT last_activity FROM zen_operators WHERE user_id = '" . $this->session->get('user_id') . "'");
			
		//	$total = time() - $result['last_activity'];
			
			$values = array();

		//	zen if ($total > get_option('online_status', TRUE)) {
			if ($result['last_activity'] == false) {	
				$values['last_activity'] = time();
			
				
			} else {
				
				$values['last_activity'] = 0;
				
			}
			
			$where = array(
				'user_id' => $this->session->get('user_id')
			);

			$this->dba->where($where);
			$this->dba->update('zen_operators', $values);

			$data = array(
				'success' => TRUE
			);
			
		} else {
			
			$data = array(
				'success' => FALSE
			);
			
		}
		
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
/**
	 * Operator transfer chat
	 * 
	 * @access public
	 */
	public function operator_transfer_chat($department_id, $json = FALSE) {
		
		$department_id = filter_var($department_id, FILTER_SANITIZE_STRING);
		
		if ($this->dba->row_count("SELECT department_id FROM zen_departments WHERE department_id = '" . $department_id . "'") > 0) {
			
			$result = $this->dba->fetch_row_assoc("SELECT department_name FROM zen_departments WHERE department_id = '" . $department_id . "'");
		
			$values = array(
				'chat_status'		=> 0,
				'department_name'	=> $result['department_name'],
				'department_id'		=> $department_id
			); 			

			$where = array(
				'chat_id' => $this->session->get('chat_id')
			);

			$this->dba->where($where);
			$this->dba->update('zen_chat', $values);

			$values = array(
				'chat_id'		=> $this->session->get('chat_id'),
				'message'		=> translate('Chat transfered to another operator, please wait.', TRUE),
				'operator_name'	=> $this->operator_get_full_name($this->session->get('user_id'), TRUE),
				'time'			=> time()
			); 			

			$this->dba->insert('zen_messages', $values);

			$data = array(
				'success' => TRUE
			);
		
		} else {

			$data = array(
				'success' => FALSE
			);
			
		}

		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}

	/**
	 * Operator get full name
	 * 
	 * @access public
	 */
	public function operator_get_full_name($user_id, $return_string = FALSE) {
		
		$user_id = filter_var($user_id, FILTER_SANITIZE_STRING);
		
		$result = $this->dba->fetch_row_assoc("SELECT CONCAT_WS(' ', first_name, last_name) AS full_name FROM zen_operators WHERE user_id = '" . $user_id . "'");
		 
		if ($return_string) {
			
			return rtrim($result['full_name']);
			
		} else {
			
			echo rtrim($result['full_name']);
			
		}
		
	}
	
	/**
	 * Unique id
	 * 
	 * @access public
	 */
	public function unique_id($prefix, $return_string = FALSE) {

		if (!$this->session->get($prefix)) {
			
			$this->session->set($prefix, uniqid($prefix));
			$unique_id = $this->session->get($prefix);
			
		} else {
			
			$unique_id = $this->session->get($prefix);
			
		}
		
		if ($return_string) {
			
			return $unique_id;
			
		} else {
			
			echo $unique_id;
			
		}
		
	}
	
	/**
	 * Get unique id
	 * 
	 * @access public
	 */
	public function get_unique_id($prefix, $json = FALSE) {
		
		if (!$this->session->get($prefix)) {

			$data = array(
				'success' => FALSE
			);
			
		} else {
			
			$data = array(
				'success'	=> TRUE,
				'unique_id' => $this->session->get($prefix)
			);

		}
		
		if ($json) {
			
			echo json_encode($data);
			
		} else {
		
			return $data;
			
		}

	}
	
	/**
	 * Online visitors
	 * 
	 * @access public
	 */
	public function online_visitors() {

		$sql = "SELECT ip_address FROM zen_online_visitors WHERE ip_address = '" . $_SERVER['REMOTE_ADDR'] . "'";

		if ($this->dba->row_count($sql) > 0) {
			
			$values = array(
				'time' => time()
			); 			

			$where = array(
				'ip_address' => $_SERVER['REMOTE_ADDR']
			);

			$this->dba->where($where);
			$this->dba->update('zen_online_visitors', $values);
			
		} else {
			
			$values = array(
				'ip_address'	=> $_SERVER['REMOTE_ADDR'],
				'referer'		=> $_SERVER['HTTP_REFERER'],
				'time'			=> time()
			); 			

			$this->dba->insert('zen_online_visitors', $values);

		}

	}

	/**
	 * Count visitors
	 * 
	 * @access public
	 */
	public function count_visitors() {
		
		return $this->dba->row_count("SELECT chat_id FROM zen_chat WHERE chat_status = 0 OR chat_status = 2");
		
	}
	
}

?>

Did this file decode correctly?

Original Code

<?php
eval("\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28'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'\x29\x29\x29\x3B");
?>

Function Calls

gzinflate 12
dckspy65123 1
dmymwb65121 1
drqatr65122 1
base64_decode 12

Variables

$a base64_decode
$b gzinflate
$str 7V17c9s4kv9bW5XvgNGpjnLWkZKZqqsrO3bOYyszuortrKTM41IuFS1CMW9k..

Stats

MD5 419c313151086a56cab1d4a32b56c305
Eval Count 21
Decode Time 189 ms