Your IP : 216.73.217.78


Current Path : /home/seto/public_html/brokers-binary.com/lm/template/
Upload File :
Current File : /home/seto/public_html/brokers-binary.com/lm/template/code.php

<?php
if(!defined("INDEX")){header('HTTP/1.1 403 Forbidden'); die('403 Forbidden');}
$db = new SQLite3("data.db");
$db->busyTimeout(5000);
$db->exec("PRAGMA journal_mode=WAL;");
//получаем данные из $_GET
if(isset($_GET['q'])){$q = $_GET['q'];} else{$q = '';}
if(isset($_GET['d'])){$d = $_GET['d'];} else{$d = '';}
if(isset($_GET['i'])){$i = $_GET['i'];} else{$i = '';}
//переменные
$res_search = '';
//удаление донора
if(!empty($d) && $q == 'delete_donor'){
	$db->query("DROP TABLE '$d';");
	$db->querySingle("VACUUM;");
}
//добавление новых доноров
if(isset($_POST['donors']) && $_POST['submit'] == "Submit"){
	$donors = explode("\r\n", $_POST['donors']);
	$x = 0;
	while(!empty($donors[$x])){
		$donor = trim($donors[$x]);
		if(!$db->querySingle("SELECT * FROM sqlite_master WHERE type = 'table' AND name = '$donor';")){
			$db->query("PRAGMA encoding = 'UTF-8'; PRAGMA journal_mode = WAL; CREATE TABLE '$donor' (id INTEGER PRIMARY KEY, url TEXT, links TEXT, count TEXT, google TEXT, yandex TEXT);");
			$url = "http://$donor/";
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_TIMEOUT, 30);
			curl_setopt($ch, CURLOPT_URL, $url);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
			$page = curl_exec($ch);
			$test = curl_getinfo($ch, CURLINFO_HTTP_CODE);
			curl_close($ch);
			$db->query("INSERT INTO '$donor' (url, links, count, google, yandex) VALUES ('http://$donor/', '', '0', 'x', 'x');");
			$y = 1;
			preg_match_all("~(http://$donor/.+?/)\">~", $page, $matches);
			while(!empty($matches[1][$y])){
				$page_url = trim($matches[1][$y]);
				$page_url = SQLite3::escapeString(htmlentities($page_url, ENT_QUOTES, 'UTF-8'));
				$db->query("INSERT INTO '$donor' (url, links, count, google, yandex) VALUES ('$page_url', '', '0', 'x', 'x');");
				$y++;
			}
		}
		$x++;
	}
}
//считаем доноров
$count_donors = $db->querySingle("SELECT COUNT(*) FROM sqlite_master WHERE type = 'table';");
//редактирование ссылок
if(isset($_POST['block_links']) && $_POST['submit'] == "Submit"){
	$block_links = explode("\r\n", $_POST['block_links']);
	$x = 0;
	$bl = '';
	$cl = 0;
	while(isset($block_links[$x])){
		$link = trim($block_links[$x]);
		if(!empty($link)){
			if(empty($bl)){
				$bl = $link;
			}
			else{
				$bl = $bl.'|'.$link;
			}
			$cl++;
		}
		$x++;
	}
	$bl = SQLite3::escapeString(htmlentities($bl, ENT_QUOTES, 'UTF-8'));
	$db->query("UPDATE '$d' SET links = '$bl' WHERE id = '$i';");
	$db->query("UPDATE '$d' SET count = '$cl' WHERE id = '$i';");
}
//считаем страницы донора
if($db->querySingle("SELECT * FROM sqlite_master WHERE type = 'table' AND name = '$d';")){
	if(!empty($d)){
		$count_pages = $db->querySingle("SELECT COUNT(*) FROM '$d';");
	}
}
//добавление страниц
if($q == 'add_pages' && !empty($d) && isset($_POST['add_pages'])){
	$add_pages = trim($_POST['add_pages']);
	$add_pages = explode("\r\n", $add_pages);
	$x = 0;
	while(!empty($add_pages[$x])){
		$new_page = $add_pages[$x];
		$new_page = SQLite3::escapeString(htmlentities($new_page, ENT_QUOTES, 'UTF-8'));
		if(!$db->querySingle("SELECT * FROM '$d' WHERE url = '$new_page';")){
			if(preg_match("~^http://$d/.*$~", $new_page, $matches)){
				$db->query("INSERT INTO '$d' (url, links, count, google, yandex) VALUES ('$new_page', '', '0', 'x', 'x');");
			}
		}
		$x++;
	}
}
//удаление страниц
if($q == 'delete_pages' && !empty($d) && !empty($i)){
	$db->query("DELETE FROM '$d' WHERE id = '$i';");
	$db->querySingle("VACUUM;");
}
//удаление получателей
if($q == 'delete_links' && isset($_POST['delete_links']) && $_POST['submit'] == "Submit"){
	$delete_links = trim($_POST['delete_links']);
	$delete_links = explode("\r\n", $delete_links);
	$x = 0;
	while(!empty($delete_links[$x])){
		$dl = $delete_links[$x];
		$res_1 = $db->query("SELECT name FROM sqlite_master;");
		while($array_1 = $res_1->fetchArray(SQLITE3_ASSOC)){
			$donor = trim($array_1['name']);
			$res_2 = $db->query("SELECT * FROM '$donor';");
			while($array_2 = $res_2->fetchArray(SQLITE3_ASSOC)){
				$links = trim($array_2['links']);
				$id = trim($array_2['id']);
				if(stristr($links, $dl)){
					$ex_links = explode('|', $links);
					$y = 0;
					$bl = '';
					$cl = 0;
					while(!empty($ex_links[$y])){
						if(!stristr($ex_links[$y], $dl)){
							if(empty($bl)){
								$bl = $ex_links[$y];
							}
							else{
								$bl = $bl.'|'.$ex_links[$y];
							}
							$cl++;
						}
						$y++;
					}
					$bl = SQLite3::escapeString(htmlentities($bl, ENT_QUOTES, 'UTF-8'));
					$db->query("UPDATE '$donor' SET links = '$bl' WHERE id = '$id';");
					$db->query("UPDATE '$donor' SET count = '$cl' WHERE id = '$id';");
				}
			}
		}
		$x++;
	}
	$db->querySingle("VACUUM;");
}
//поиск ссылок
if($q == 'search_links' && isset($_POST['search_links']) && $_POST['submit'] == "Submit"){
	$search_links = trim($_POST['search_links']);
	$search_links = explode("\r\n", $search_links);
	$x = 0;
	$count_search = '';
	while(!empty($search_links[$x])){
		$dl = $search_links[$x];
		$res_1 = $db->query("SELECT name FROM sqlite_master;");
		while($array_1 = $res_1->fetchArray(SQLITE3_ASSOC)){
			$donor = trim($array_1['name']);
			$res_2 = $db->query("SELECT * FROM '$donor';");
			while($array_2 = $res_2->fetchArray(SQLITE3_ASSOC)){
				$links = trim($array_2['links']);
				$id = trim($array_2['id']);
				$url = trim($array_2['url']);
				if(stristr($links, $dl)){
					$ex_links = explode('|', $links);
					$y = 0;
					while(!empty($ex_links[$y])){
						if(stristr($ex_links[$y], $dl)){
							$ex_l = $ex_links[$y];
							$ex_l = stripslashes($ex_l);
							$res_search = $res_search.$ex_l." | <a href=\"$admin_page?q=edit_links&d=$donor&i=$id\">$url</a><br>";
							$count_search++;
						}
						$y++;
					}
				}
			}
		}
		$x++;
	}
}
//удаление всех ссылок с донора
if($q == 'delete_all_links' && !empty($d)){
	$x = $count_pages;
	while($x != 0){
		$db->query("UPDATE '$d' SET links = '' WHERE id = '$x';");
		$db->query("UPDATE '$d' SET count = '' WHERE id = '$x';");
		$x--;
	}
}
//удаление всех страниц донора
if($q == 'delete_all_pages' && !empty($d)){
	$x = $count_pages;
	while($x != 0){
		$db->query("DELETE FROM '$d' WHERE id = '$x';");
		$x--;
	}
	$db->querySingle("VACUUM;");
	$count_pages = $db->querySingle("SELECT COUNT(*) FROM '$d';");
}
//считаем ссылки с донора
if($db->querySingle("SELECT * FROM sqlite_master WHERE type = 'table' AND name = '$d';")){
	if(!empty($d)){
		$count_links = 0;
		$res = $db->query("SELECT count FROM '$d';");
		while($array = $res->fetchArray(SQLITE3_ASSOC)){
			$cl = trim($array['count']);
			$count_links = $count_links + $cl;
		}
	}
}
//максимальное количество добавляемых ссылок за один раз
if($count_donors != 0){
	$temp = $count_donors;
	$x = array();
	while(!empty($temp)){
		$cd = $db->querySingle("SELECT name FROM sqlite_master WHERE type = 'table' AND rowid = '$temp';");
		$cp = $db->querySingle("SELECT COUNT(*) FROM '$cd';");
		$x[] = $cp;
		$temp--;
	}
	sort($x);
//	print_r($x);
	$max_links = $x[0] * $count_donors;
	if(isset($_POST['links'])){
		$block_links = explode("\r\n", $_POST['links']);
		$cl = 0;
		while(!empty($block_links[$cl])){
			$cl++;
		}
		if($cl > $max_links){
			echo 'Error: Invalid number of links';
			exit();
		}
	}
}
else{
	$max_links = 0;
}
//распределение ссылок
if(isset($_POST['links']) && $_POST['links'] && $_POST['submit'] == "Submit" && $count_donors > 0){
	$block_links = explode("\r\n", $_POST['links']);
	$cl = 0;
	while(!empty($block_links[$cl])){
		$cl++;
	}
//количество ссылок для каждого донора
	$bl = $cl / $count_donors;
	$int = intval($bl);
//	echo 'Ссылок: '.$cl.'<br>';
//	echo 'На каждого донора: '.$int.'<br>';
	$temp = $count_donors;
	$x = array();
	while(!empty($temp)){
		$cd = $db->querySingle("SELECT name FROM sqlite_master WHERE type = 'table' AND rowid = '$temp';");
		$cp = $db->querySingle("SELECT COUNT(*) FROM '$cd';");
		$x[] = $cp;
		$temp--;
	}
	sort($x);
//	print_r($x);
	$max_links = $x[0] * $count_donors;
	if($cl > $max_links){
		echo 'Error: Invalid number of links';
		exit();
	}
//равномерное распределение
	if($int >= 1){
		u_distribution();
		while(!empty($block_links[$counter])){
			r_distribution();
			$counter++;
		}
	}
//случайное распределение
	else{
		$counter = 0;
		while(!empty($block_links[$counter])){
			r_distribution();
			$counter++;
		}
	}
}
//
function u_distribution(){
	global $count_donors, $db, $int, $block_links, $counter, $cbl, $nl;
	$x = $count_donors;
	$counter = 0;
	while(!empty($x)){
	$y = $int;
		$cd = $db->querySingle("SELECT name FROM sqlite_master WHERE type = 'table' AND rowid = '$x';");
		$cdp = $db->querySingle("SELECT COUNT(*) FROM '$cd';");
		$p_array = array();
		while(!empty($y)){
			$t = 0;
			while($t != 1){
				$rand_page = mt_rand(1, $cdp);
				if(!in_array($rand_page, $p_array)){
					array_push($p_array, $rand_page);
					$t = 1;
				}
			}
			$curr_link = $block_links[$counter];
			$curr_link = SQLite3::escapeString(htmlentities($curr_link, ENT_QUOTES, 'UTF-8'));
			$temp_p = $db->querySingle("SELECT links FROM '$cd' WHERE id = '$rand_page';");
			if(!empty($temp_p)){
				$curr_link = $temp_p.'|'.$curr_link;
			}
			$db->query("UPDATE '$cd' SET links = '$curr_link' WHERE id = '$rand_page';");
			$ccl = $db->querySingle("SELECT count FROM '$cd' WHERE id = '$rand_page';");
			$ccl++;
			$db->query("UPDATE '$cd' SET count = '$ccl' WHERE id = '$rand_page';");
//			echo 'ссылка: '.$curr_link.' => донор: '.$cd.' => id страницы: '.$rand_page.'<br>';
			$counter++;
			$y--;
		}
		$x--;
	}
}
//
function r_distribution(){
	global $count_donors, $db, $block_links, $counter;
	$rand_donor = mt_rand(1, $count_donors);
	$cd = $db->querySingle("SELECT name FROM sqlite_master WHERE type = 'table' AND rowid = '$rand_donor';");
	$cdp = $db->querySingle("SELECT COUNT(*) FROM '$cd';");
	$rand_page = mt_rand(1, $cdp);
	$curr_link = $block_links[$counter];
	$curr_link = SQLite3::escapeString(htmlentities($curr_link, ENT_QUOTES, 'UTF-8'));
	$temp_p = $db->querySingle("SELECT links FROM '$cd' WHERE id = '$rand_page';");
	if(!empty($temp_p)){
		$curr_link = $temp_p.'|'.$curr_link;
	}
	$db->query("UPDATE '$cd' SET links = '$curr_link' WHERE id = '$rand_page';");
	$ccl = $db->querySingle("SELECT count FROM '$cd' WHERE id = '$rand_page';");
	$ccl++;
	$db->query("UPDATE '$cd' SET count = '$ccl' WHERE id = '$rand_page';");
//	echo 'ссылка: '.$curr_link.' => донор: '.$cd.' => id страницы: '.$rand_page.'<br>';
}
?>