'ping', 'ip'=>$ip)); if(CheckVersion($content) && $server!=$SITE_URL){ //store server $query="INSERT INTO ".table('FILE_TABLE')." VALUES ('$id', 2, '$ip', '', '', '', '$server')"; DBquery($link,$query); $server_list[count($server_list)]=$server; $s_output = "The server was added.
"; $server=''; } else{$s_output = "Error. The server could not be added.
";} break; case 'deleteserver': $tab='settings'; foreach($server_list as $s){ if(isset($_POST['del_'.FILTER_('.',$s)])){ $query="DELETE FROM ".table('FILE_TABLE')." WHERE url='$s'"; DBquery($link,$query); break; } } //Get Server List $server_list=array(); $server_list[0]=$SITE_URL; $query="SELECT * FROM ".table('FILE_TABLE')." WHERE type = 2"; $result = DBquery($link,$query); $rows = DBnum_rows($result); for($i=0;$i<$rows;$i++){$server_list[$i+1]=DBresult($result,$i,'url');} break; case 'file': if($_POST['request'] == $SITE_URL){ //Close Database DBclose($link); exit(); } //Upload Algorythm //1:get user from db if(isset($_POST['user'])){$user = $_POST['user'];} if($user==''){$f_output="Error. User not result.
";} else{ //Create Paths $target_path = "save/"; $target_path = FILTER_SPACES($target_path .$user."-". basename( $_FILES['uploadedfile']['name'])); $store_path = "save/store/"; $store_path = FILTER_SPACES($store_path .$user."-". basename( $_FILES['uploadedfile']['name'])); //2a:Backup the old file if it exists if(file_exists($target_path)){rename($target_path, $store_path);} //2b:copy the new file to the storage folder if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { $f_output="The file ". basename( $_FILES['uploadedfile']['name'])." has been uploaded
"; //2c:insert the file record $query="DELETE FROM ".table('FILE_TABLE')." WHERE user='$user' AND file='".basename( $_FILES['uploadedfile']['name'])."'"; DBquery($link,$query); $query="INSERT INTO ".table('FILE_TABLE')." VALUES ('$id', 3, '$ip', '$user', '".basename( $_FILES['uploadedfile']['name'])."', '$id', '')"; DBquery($link,$query); } else{$f_output="There was an error uploading the file, please try again!
";} //3:send file/post data to the servers $post=array('formid'=>'file', 'user'=>$user, 'ip'=>$ip, 'time'=>$id, 'uploadedfile'=>new CurlFile($target_path, '', $_FILES['uploadedfile']['name']),'request'=>$SITE_URL); foreach ($server_list as $s) {curl($s, $post);} } break; case 'deletefile': if($_POST['request'] == $SITE_URL){ //Close Database DBclose($link); exit(); } if(isset($_POST['user'])){$user = $_POST['user'];} $query="SELECT * FROM ".table('FILE_TABLE')." WHERE type = 3"; $result = DBquery($link,$query); $rows = DBnum_rows($result); for($i=0;$i<$rows;$i++){ if(isset($_POST['del_'.FILTER_('.', DBresult($result,$i,'file'))])){break;} } if($i<$rows){ $filename=DBresult($result,$i,'file'); $query="DELETE FROM ".table('FILE_TABLE')." WHERE user='$user' AND file='".$filename."'"; DBquery($link,$query); $post=array('formid'=>'deletefile', 'user'=>$user, 'ip'=>$ip, 'time'=>$id, 'del_'.FILTER_('.',$filename)=>'X', 'request'=>$SITE_URL); foreach ($server_list as $s) {curl($s, $post);} } break; } } //Build File List if($user!=''){ $post=array('formid'=>'list', 'user'=>$user, 'ip'=>$ip, 'time'=>time()); foreach ($server_list as $s) { $content = explode('|',curl($s, $post)); if(count($content)>=2){ switch($s==$SITE_URL){ case true: for($i=0;$i$content[$i], 'time'=>$content[$i+1], 'server'=>$s, 'status'=>1);} } break; case false: for($i=0;$i= 1){$f['status'] += 1; $file_list[$content[$i]] = $f;} if($f['time'] > $content[$i+1]){$f['time'] = $content[$i+1]; $f['server'] = $s; $f['status'] = 0; $file_list[$content[$i]] = $f;} } else{ //doesnt exist if($content[$i]!=""){ $file_list[$content[$i]]=array('file'=>$content[$i], 'time'=>$content[$i+1], 'server'=>$s, 'status'=>0); } } } break; } } } } //Set Tab State $tab = $user=='' || count($server_list)<=1?'settings':$tab; //Close Database DBclose($link); //Functions function CheckVersion(string $check){ $result=false; foreach($GLOBALS['COMPATIBLE'] as $v){ if($v==$check){$result=true; break;} } return $result; } function curl($url, $post){ $handle=curl_init(); curl_setopt($handle, CURLOPT_URL, $url); curl_setopt($handle, CURLOPT_VERBOSE, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($handle, CURLOPT_POSTFIELDS, $post); $content = curl_exec($handle); curl_close($handle); return $content; } function ShortHash($hash){ $arr = str_split($hash); $start=0;$length=0; foreach($arr as $c){ if (is_numeric($c)) { if($start==0){$start=(intval($c)<5?intval($c)+5:intval($c));} else{$length=(intval($c)<5?intval($c)+5:intval($c));} if($length!=0){break;} } } return substr($hash, $start, $length); } function FILTER_(string $search, string $string): string{return str_replace($search,'_',$string);} function FILTER_SPACES(string $string): string{return str_replace(' ','_',$string);} function FILTER_SANITIZE_STRING(string $string): string { return str_replace(["'", '"'], [''', '"'], preg_replace('/\x00|<[^>]*>?/', '', $string)); } ?> ':'';?>

File Sync

| |