Current Path : /var/www/html/clients/amz.e-nk.ru/download/ |
Current File : /var/www/html/clients/amz.e-nk.ru/download/download.php |
<? function initialize_params($url) { if (strpos($url,"?")>0) { $par = substr($url,strpos($url,"?")+1,strlen($url)); $arr = explode("#",$par); $par = $arr[0]; $arr1 = explode("&",$par); foreach ($arr1 as $pair) { $arr2 = explode("=",$pair); global $$arr2[0]; $$arr2[0] = $arr2[1]; } } } $path = dirname($_SERVER["REQUEST_URI"]); $arr1 = explode("?",$_SERVER["REQUEST_URI"]); $URI = $arr1[0]; $file = substr($URI, strlen($path."/")); $file = str_replace("..", "", $file); $filename = urldecode($_SERVER["DOCUMENT_ROOT"].$path."/files/".$file); if(file_exists($filename)) { set_time_limit(0); session_cache_limiter(''); session_start(); initialize_params($_SERVER["REQUEST_URI"]); $cur_pos = 0; $p = (isset($_SERVER["HTTP_RANGE"])) ? strpos($_SERVER["HTTP_RANGE"], "=") : 0; if(intval($p)>0) { $bytes = substr($_SERVER["HTTP_RANGE"], $p+1); $p = strpos($bytes, "-"); if($p!==false) $cur_pos = intval(substr($bytes, 0, $p)); } include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if (CModule::IncludeModule("statistic")) { if ($cur_pos<=0) // проверим скачивается ли с самого начала { if (strlen($event1)<=0 && strlen($event2)<=0) { $event1 = "download"; $event2 = $file; } $e = $event1."/".$event2."/".$event3; if (!in_array($e, $_SESSION["DOWNLOAD_EVENTS"])) // проверим не скачивался ли в данной сессии { $w = CStatEvent::GetByEvents($event1, $event2); $wr = $w->Fetch(); $z = CStatEvent::GetEventsByGuest($_SESSION["SESS_GUEST_ID"], $wr["EVENT_ID"], $event3, 21600); if (!($zr=$z->Fetch())) // проверим не скачивал ли посетитель за последние 6 часов { CStatistic::Set_Event($event1, $event2, $event3); $_SESSION["DOWNLOAD_EVENTS"][] = $e; } } } } ob_end_clean(); session_write_close(); LocalRedirect($path."/files/".$file); } else { include($_SERVER["DOCUMENT_ROOT"]."/404.php"); } ?>