HEX
Server: Apache/2.4.65 (Debian)
System: Linux srv39710 6.1.0-41-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.4.11
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Upload Files
File: /var/www/www-root/data/www/mowik.click/tds/files/log.php
<?php
if(!defined("INDEX")){header('HTTP/1.1 403 Forbidden'); die('403 Forbidden');}
if($q == 'log' || $q == 'export'){
	if(empty($_GET['col'])){
		$col = 'domain';
	}
	else{
		$col = $_GET['col'];
	}
	$find = '';
	$q_stream = '';
	$q_find = '';
	if(!empty($_GET['find'])){
		$find = htmlentities($_GET['find'], ENT_QUOTES, 'UTF-8');
		if($col != 'asn'){
			$q_find = 'AND '.$col.' LIKE "%'.$find.'%"';
		}
		else{
			$q_find = "AND $col = '$find'";
		}
	}
	if(!empty($s_name)){
		$q_stream = "AND nstream = '$s_name'";
	}
	$ldata = base64_encode(serialize(array("table"=>"$table", "q_stream"=>"$q_stream", "q_find"=>"$q_find", "q_group"=>$g_id)));
	$db = new SQLite3($folder_log.'/'.$g_id.'.db');
	$db->busyTimeout($timeout_2);
	$db->exec("PRAGMA journal_mode = WAL;");
	$date = date('Y-m-d', $table);
	if($db->querySingle("SELECT name FROM sqlite_master WHERE type = 'table' AND name='$table'")){
		if($q == 'log'){
			echo '<!DOCTYPE html>
<html>
<head>
<title>zTDS '.$version.'</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex, nofollow, nosnippet">
<link rel="shortcut icon" href="files/img/favicon.ico">
<link rel="stylesheet" type="text/css" href="files/lib/datatables/datatables.min.css">
<link rel="stylesheet" href="files/style.css">
<script type="text/javascript" src="files/lib/jquery.min.js"></script>
<script type="text/javascript" src="files/lib/datatables/datatables.min.js"></script>
<script type="text/javascript" src="files/js/top.js"></script>
<script type="text/javascript" src="files/lib/jquery.responsiveTabs.js"></script>
<script type="text/javascript">var utc_offset='.$utc_offset.';</script>
</head>
<body onload="startTime()">
<div class="header">
<div class="logo align_left">zTDS '.$version.'</div>
<div class="time" id="time" title="'.$timezone.'"></div>
</div>
<div class="dlog indt_10">';
			if(!empty($s_name)){
				echo '<div class="align_center bold indt_10">Group: '.$g_name.' | Stream: '.$s_name.'</div>';
			}
			else{
				echo '<div class="align_center bold indt_10">Group: '.$g_name.'</div>';
			}
			echo '<div class="align_center indt_20"><a href="'.$admin_page.'">Main</a> | <a href="javascript:location.reload();">Update</a> | <a href="javascript:history.back();">Back</a> | <a href="'.$admin_page.'?q=export&g='.$g_id.'&s='.$s.'&t='.$table.'">Export</a></div>';
			if(file_exists($folder_log.'/'.$g_id.'.db')){
				$option = '';
				$res = $db->query("SELECT * FROM sqlite_master WHERE type = 'table' ORDER BY name DESC;");
				while(true){
					if($array = $res->fetchArray(SQLITE3_ASSOC)){
						$table_temp = $array['name'];
						$date_temp = date('Y-m-d', $table_temp);
						if(!empty($date_temp)){
							if(!empty($s)){
								$z = '&s='.$s;
							}
							else{
								$z = '';
							}
							$sel = '';
							if($table == $table_temp){
								$sel = 'selected="selected" ';
							}
							$option = $option.'<option '.$sel.'value="'.$table_temp.'">'.$date_temp.'</option>';
						}
					}
					else{
						break;
					}
				}
			}
			echo '<div class="indt_10">
<form class="align_center" method="get" action="'.$admin_page.'">
<input name="q" type="hidden" value="log">
<input name="g" type="hidden" value="'.$g_id.'">';
			if(!empty($s)){
				echo '<input name="s" type="hidden" value="'.$s.'">';
			}
			echo '
<div class="indt_10">
<select class="h20" type="hidden" name="col" size = "1">
<option'; if($col == 'bot'){echo ' selected="selected"';} echo ' value="bot">Bot</option>
<option'; if($col == 'city'){echo ' selected="selected"';} echo ' value="city">City</option>
<option'; if($col == 'country'){echo ' selected="selected"';} echo ' value="country">Country</option>
<option'; if($col == 'asn'){echo ' selected="selected"';} echo ' value="asn">ASN</option>
<option'; if($col == 'org'){echo ' selected="selected"';} echo ' value="org">Organisation</option>
<option'; if($col == 'utc'){echo ' selected="selected"';} echo ' value="utc">UTC</option>
<option'; if($col == 'os'){echo ' selected="selected"';} echo ' value="os">OS</option>
<option'; if($col == 'browser'){echo ' selected="selected"';} echo ' value="browser">Browser</option>
<option'; if($col == 'device'){echo ' selected="selected"';} echo ' value="device">Device</option>
<option'; if($col == 'brand'){echo ' selected="selected"';} echo ' value="brand">Brand</option>
<option'; if($col == 'domain'){echo ' selected="selected"';} echo ' value="domain">Domain</option>
<option'; if($col == 'ipuser'){echo ' selected="selected"';} echo ' value="ipuser">IP</option>
<option'; if($col == 'keyword'){echo ' selected="selected"';} echo ' value="keyword">Keyword</option>
<option'; if($col == 'lang'){echo ' selected="selected"';} echo ' value="lang">Language</option>
<option'; if($col == 'out'){echo ' selected="selected"';} echo ' value="out">Out</option>
<option'; if($col == 'referer'){echo ' selected="selected"';} echo ' value="referer">Referer</option>
<option'; if($col == 'se'){echo ' selected="selected"';} echo ' value="se">SE</option>
<option'; if($col == 'nstream'){echo ' selected="selected"';} echo ' value="nstream">Stream</option>
<option'; if($col == 'useragent'){echo ' selected="selected"';} echo ' value="useragent">Useragent</option>
<option'; if($col == 'operator'){echo ' selected="selected"';} echo ' value="operator">WAP</option>
</select>
<input class="i150" name="find" type="text" value="'; if(!empty($find)){echo $find;} echo '" maxlength="200">
</div>
<div class="indt_10">
<select class="h20" type="hidden" name="t" size = "1">';
			echo $option;
			echo '</select>
<input class="button_small" type="submit" value="View"></div>
</form>
</div>';
			echo '<div class="indt_20">
<table id="example" class="cell-border display compact responsive" width="95%" cellspacing="0">
<thead>
<tr>';
			foreach($col_log as $name => $v){
				$v_ex = explode(':', $v);
				if($v_ex[0] == 0){$dtclass = ' class="none"';}
				if($v_ex[0] == 1){$dtclass = '';}
				$dp = 'data-priority="'.$v_ex[1].'"';
				echo "<th $dp$dtclass>$name</th>\n";
			}
			echo '</tr>
</thead>
<tfoot>
<tr>';
			foreach($col_log as $name => $v){
				echo "<th>$name</th>\n";
			}
			echo '</tr>
</tfoot>
<tbody>';
			echo '</tbody>
</table>
</div>
<script type="text/javascript" class="init">
$(document).ready(function(){
	$("#example").DataTable({
		"serverSide":true,
		"ajax":"files/sslog.php?q='.$ldata.'",
		"processing":true,
		"language":{
			"processing":"Loading...",
			"info":"Showing _START_ to _END_ of _TOTAL_ entries",
			"infoEmpty":"",
			"infoFiltered":"Total entries: _MAX_",
			"thousands":"",
			"paginate":{
				"first":"First",
				"last":"Last",
				"next":"Next",
				"previous":"Prev"
			},
		},
		"sorting":[[0, "asc"]],
		"info":true,
		"sortable":true,
		"searching":false,
		"orderMulti":true,
		"ordering":true,
		"paging":true,
		"lengthMenu":[[100, 200, 300, 500, 1000, 5000], [100, 200, 300, 500, 1000, 5000]],
		"pageLength":100,
		"dom":"<\'dt_top\'<\'fl\'l><\'fr\'i>>rt<\'dt_bottom\'p>",
	});
});
</script>
</div>
<div style="clear:both;"></div>
<div class="bottom">&copy; root</div>';
			echo '</body>
</html>';
		}
		if($q == 'export'){
			if(empty($s_name)){
				$res = $db->query("SELECT * FROM '$table';");
			}
			if(!empty($s_name)){
				$res = $db->query("SELECT * FROM '$table' WHERE nstream = '$s_name';");
			}
			header("Content-Type: application/vnd.ms-excel");
			header("Content-Disposition: attachment; filename=$date.xls");
			header("Content-Transfer-Encoding: binary");
			echo '<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">.max_td{max-width:200px; word-wrap:break-word;}</style>
</head>
<body>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>Time</th>
<th>Group</th>
<th>Stream</th>
<th>Out</th>
<th>Key</th>
<th>Redirect</th>
<th>WAP</th>
<th>Device</th>
<th>Brand</th>
<th>OS</th>
<th>Browser</th>
<th>Lang</th>
<th>Country</th>
<th>City</th>
<th>Region</th>
<th>ASN</th>
<th>Org</th>
<th>UTC</th>
<th>Uniq</th>
<th>Bot</th>
<th>IP</th>
<th>Domain</th>
<th>Page</th>
<th>Referer</th>
<th>UA</th>
<th>SE</th>
<th>$</th>
</tr>
</thead>
<tbody>';
			while($array = $res->fetchArray(SQLITE3_ASSOC)){
				echo '<tr align="center">
<td>'.$array['id'].'</td>
<td>'.$array['time'].'</td>
<td class="max_td">'.$array['ngroup'].'</td>
<td class="max_td">'.$array['nstream'].'</td>
<td class="max_td">'.$array['out'].'</td>
<td class="max_td">'.htmlentities($array['keyword'], ENT_QUOTES, 'UTF-8').'</td>
<td>'.$array['redirect'].'</td>
<td>'.$array['operator'].'</td>
<td>'.$array['device'].'</td>
<td>'.$array['brand'].'</td>
<td>'.$array['os'].'</td>
<td>'.$array['browser'].'</td>
<td>'.$array['lang'].'</td>
<td>'.$array['country'].'</td>
<td>'.$array['city'].'</td>
<td>'.$array['region'].'</td>
<td>'.$array['asn'].'</td>
<td class="max_td">'.$array['org'].'</td>
<td>'.$array['uniq'].'</td>
<td>'.$array['bot'].'</td>
<td class="max_td">'.$array['ipuser'].'</td>
<td>'.htmlentities($array['domain'], ENT_QUOTES, 'UTF-8').'</td>
<td class="max_td">'.htmlentities(urldecode($array['page']), ENT_QUOTES, 'UTF-8').'</td>
<td class="max_td">'.htmlentities(urldecode($array['referer']), ENT_QUOTES, 'UTF-8').'</td>
<td class="max_td">'.htmlentities($array['useragent'], ENT_QUOTES, 'UTF-8').'</td>
<td>'.$array['se'].'</td>
<td>'.$array['postback'].'</td>
</tr>';
			}
			echo '</tbody>
</table>
</body>
</html>';
		}
	}
	$db->close();
	exit();
}
?>