HEX
Server: Apache/2.4.59 (Debian)
System: Linux skycube.cz 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64
User: ilya (534)
PHP: 7.3.31-1~deb10u7
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/ilya/data/www/kamforum.ru/sources/action_public/membermap2/showmap.php
<?
 
################
#connect to DB #
################
Global $pins;
include_once ("../../../conf_global.php");
$user=$INFO['sql_user'];
$host=$INFO['sql_host'];
$pw=$INFO['sql_pass'];
$DBB=$INFO['sql_database'];
$conn = @mysql_connect($host,$user,$pw) or die("Err:Conn");
$rs = @mysql_select_db($DBB, $conn) or die ("Err:Db");
$loc=$INFO['board_url'];
$db_pre=$INFO['sql_tbl_prefix'];

if(isset($_GET['type'])){$type=$_GET['type'];}

if(isset($_GET['map'])){$map=$_GET['map'];$map_name=substr($map,0,strlen($map)-4);}




// --------------------------------------------
// get pins
// --------------------------------------------
$pins_db=$db_pre.'membermap2_pins';
$sql=("select * from $pins_db");
$rs=mysql_query($sql,$conn);


while($row = mysql_fetch_array($rs) ){
	
	
	if($row[$type]=='checked'){
		
		
		
			$pini="./pins/{$row['image']}";
			$pine=strtoupper(substr($row['image'],-3));

			if ($pine == 'GIF') { 
   
  				$row['im']=imagecreatefromGIF($pini);

			} elseif($pine == 'PNG') { 
	
   
  				$row['im']=imagecreatefromPNG($pini);


			} elseif($pine == 'JPG') { 
	
  
  				$row['im']=imagecreatefromJPEG($pini);
	

			}
			
			$row['x']=imagesx ( $row['im'] );
			
			$row['y']=imagesy ( $row['im'] );
			
						
			
		$pins[$row['id']]=$row;
		
	}

}


// --------------------------------------------
// Make Map
// --------------------------------------------

$map="./maps/$map";
$mape=strtoupper(substr($map,-3));

if ($mape=='GIF') { 
   
  $im=imagecreatefromGIF($map);

} elseif($mape=='PNG') { 
	
   
  $im=imagecreatefromPNG($map);


} elseif($mape=='JPG') { 
	
  
  $im=imagecreatefromJPEG($map);
	

}



// --------------------------------------------
// Make the QUERY
// --------------------------------------------

$members_db=$db_pre.'members';
	

$sessions_db=$db_pre.'sessions';	

if (isset($_GET['member'])){
	$where="AND m.id='{$_GET['member']}'";
}else{
	$where='';
}

$sql=("select 
		m.map,
		m.map_location,
		m.posts,
		m.last_activity,
		m.id,
		m.mgroup,
		m.joined,
		s.member_id
		from $members_db m left join $sessions_db s on(m.id=s.member_id)
		where m.map = '$map_name' $where");


$rs=mysql_query($sql,$conn) or print mysql_error();

while($row = mysql_fetch_array($rs) ){
	

	if($icon=$type($row)){
		
		
		if( (!isset($_GET['cur_fil']))||($_GET['cur_fil']==$icon) ){		
		
			$pieces = explode(",",$row['map_location']); 
		
			$locx=($pieces[0]);
			$locy=($pieces[1])+8;
		
			if($pins[$icon]['handle']=='c'){
		
				$locx=$locx-($pins[$icon]['x']/2);
				$locy=$locy-($pins[$icon]['y']/2);
		
			}elseif($pins[$icon]['handle']=='bl'){
		
			
				$locy=$locy-($pins[$icon]['y']);
		
		
			}elseif($pins[$icon]['handle']=='br'){
		
			
				$locy=$locy-($pins[$icon]['y']);
				$locx=$locx-($pins[$icon]['x']);
		
			}elseif($pins[$icon]['handle']=='tr'){
		
				$locx=$locx-($pins[$icon]['x']);
		
			}
		

			imagecopy($im,$pins[$icon]['im'],$locx,$locy,0,0,$pins[$icon]['x'],$pins[$icon]['y']);  
		
		}
		
	}
	
	
	
}

Header( "Content-type: image/png");
ImagePNG($im);


/* cleanup memory */

ImageDestroy($im);
foreach($pins as $pin){ImageDestroy($pin['im']);}

exit;



function group($row){
	Global $pins;
	
	$def='';
	
	foreach($pins as $pin){
		
		if($pin['group']=='checked'){
			
			$groups=explode(',',$pin['group_value']);		
		
		
		
			if(in_array($row['mgroup'],$groups)){

				return $pin['id'];

				
			}
		
		}
	}
	
	return false;

	
}






function posts($row){
Global $pins;
	
	
	foreach($pins as $pin){
		
		if($pin['posts']=='checked'){
		
			$min=$pin['posts_value_min'];
			$max=$pin['posts_value_max'];
		
		
			if( ($row['posts']>=$min)&&($row['posts']<=$max)){


				return $pin['id'];
				
			}
		
		}
	}
	return false;
	
	



}	


function active($row){
Global $pins;
	
	
	foreach($pins as $pin){
	
		if($pin['active']=='checked'){
		
					
			$mult=$pin['active_value_x'];		
					
			$times['0']=$pin['active_value_min'];		
			$times['1']=$pin['active_value_max'];		
			
			$now=time();
			
			//figure times?
    	
    	
			if($mult=='m'){
				
					$max=$now-($times['0']*60);
					$min=$now-($times['1']*60);
					
					
			}elseif($mult=='h'){
			
					$max=$now-($times['0']*3600);
					$min=$now-($times['1']*3600);
					
			
			
			}elseif($mult=='d'){
			
					$max=$now-($times['0']*(3600*24));
					$min=$now-($times['1']*(3600*24));
					
			
			}elseif($mult=='o'){
					
					$min=0;
					$max=0;
					
					if($row['member_id']==$row['id']){
				
						return $pin['id'];	
					
					}
			
			}
						
			if( ($row['last_activity']>=$min)&&($row['last_activity']<=$max)){
				
				return $pin['id'];
					
			}
		}
	
	
	}
	return 0;
	
	



}	
function joined($row){
Global $pins;
	
	
	foreach($pins as $pin){
		
		if($pin['joined']=='checked'){
			
			$mult=$pin['joined_value_x'];		;
					
			$times['0']=$pin['joined_value_min'];		
			$times['1']=$pin['joined_value_max'];		
			
			$now=time();
		
			//figure times?

			if($mult=='m'){
			
				$max=$now-($times['0']*60);
				$min=$now-($times['1']*60);
				
				
			}elseif($mult=='h'){
		
				$max=$now-($times['0']*3600);
				$min=$now-($times['1']*3600);
				
		
		
			}elseif($mult=='d'){
		
				$max=$now-($times['0']*(3600*24));
				$min=$now-($times['1']*(3600*24));
				
		
			}
		
			
			if( ($row['joined']>=$min)&&($row['joined']<=$max)){
			
				return $pin['id'];
				
				
			}
		
		}
	
	}
	return 0;
	
	



}	

function hex2dec($hex) {
 $color = str_replace('#', '', $hex);
 $ret = array(
   'r' => hexdec(substr($color, 0, 2)),
   'g' => hexdec(substr($color, 2, 2)),
   'b' => hexdec(substr($color, 4, 2))
 );
 return $ret;
}
?>