[PHP] FATAL ERROR $THIS->
Tags: php
Published: 2020-03-23 10:32:22

HOW TO FIX

Fatal error: Uncaught Error: Using $this when not in object context in /testynarkotykowe/libs/timer/index.php:13 Stack trace: #0 /testynarkotykowe/index.php(36): TIMER::getTime('all') #1 /testynarkotykowe/m/pg/index.php(110): PAGE->PAGE(NULL, 'cart') #2 /testynarkotykowe/index.php(28): include_once('/testynarkotyko...') #3 /testynarkotykowe/index.php(115): loadMod('pg') #4 {main} thrown in /testynarkotykowe/libs/timer/index.php on line 13

HOW TO TRACK THE ERROR? http://testynarkotykowe.j13x.pl/index.txt

``<?php #error_reporting(0);

define('PHP','.php'); require_once('_gz/php_speedy'.PHP); define('INX','index'); define('HTML','.html'); error_reporting(E_ALL ^ E_NOTICE); define('N','/'); ini_set('memory_limit','512M');
define('DIR_LIB','libs/'); define('DIR_MOD','m/'); define('DIR_TPL','tpl/'); define('DIR_LNG','lng/'); define('R_TIME',2*1000); define('PTH',''); define('HTTP','http://'); define('RANGE_IMG',5000);
define('URL',HTTP.$_SERVER['HTTP_HOST'].N.PTH); define('_URL',HTTP.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); define('TAX_RATE',0.08); /* for drug_tests [!] */ define('DOTPAY_ID',37953);
define('POPUP_NW',"'mywindow','width=400,height=200,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes')");
define('_E','ENGINE | '); define('_LNG','X lng file in mod'); define('_DB','DB | '); define('H','Hacking Attempt | '); define('_C','COOKIE | '); define('_S','SESSION | '); define('NOREPLY','noreply'); define('WWW','www.');
define('JQ','jquery'); define('SEP',' | '); define('SP','|'); define('URI_SEP',','); define('BULK_URI','?bulk'); define('GUEST','Anonymous'); define('C_EXP',time()+24*3600*30); define('PP',14); define('TH_W',125); define('TH_H',75); define('TH',95); define('COUNTDOWN',7);
define('HIDE','st'); define('NL',"\n"); define('DATETIME',date('Y-m-d H:i:s')); define('DATETIME_YESTERDAY',date("Y-m-d",time()-(60*60*24))); define('IMG_W',864); define('IMG_H',720); define('IMG_',70); define('IMG_TH','_th.'); define('IMG_AV','_avatar.'); define('MAIL_STYLE',' style="color:blue;text-decoration:underline"'); define('A4_W',946); define('A4_H',1334); /* 595,842 */ define('LIMIT_SIGNATURE',30); define('LIMIT_UTOPICS',16); define('HASH','#'); define('C_TIP_LIMIT',10); define('C_LIMIT',2);/*COMMENTS*/ define('WRAP0',42); define('WRAP1',370);/*74 x 5*/ define('LIMIT_PREFACE',300); define('hideAFTER',3000); define('ERASE_AFTER_X_DAYS',30); define('NOTIFS_LIMIT',2000);
define('__ID','ID non'); define('__D','!digit'); define('__R','record non'); define('LOC','Location: '); define('PER_PG',10); define('PER_PG2',5); define('PER_PG3',25); define('PER_PG4',40); session_start(); define('DATETIME_NO','0000-00-00 00:00:00'); define('AminLENGTH',10); define('fade1',100); define('RANGE',50000); define('TH_PRE','th.'); define('TH_EXT','jpg'); define('USERNAME','0100000');/*OBLIGATORY: "0" on the beginning*/ define('USERNAME_LENGTH',strlen(USERNAME)); define('QMIN_LENGTH',10);
define('BALANCE0',"0.00"); define('PIN_ATTEMPTS',5); define('MIN_AMOUNT',100); define('RATE0','0.0000'); function datetime($diff) { $timestamp=time(); $tm=86400*$diff; $tm=$timestamp+$tm; return $tm; } define('DATETIME1',date('Y-m-d H:i:s',datetime(1))); define('LANGUAGE','pl'); define('LNG',LANGUAGE.N); define('LG','_'.LANGUAGE); define('MIN_LENGTH',3); define('CURRENCY','PLN');
/* testy */ define('_DEFAULT_ITEM_CNT',4); define('_PROMO_ITEM_CNT',11); define('_PROMO_'.strtoupper(LANGUAGE).'_PRICE',115); define('_PROMO_'.strtoupper(LANGUAGE).'_BEFORE_PRICE',129);
/*define('U_FIELDS','id,p,phone,mail,act_lnk,session,name');*/ define('URL_LENGTH',120); /* to 120 */ define('AUTOSAVE_DRAFT_TIME',60*1000);
/* TESTY */ #if(!empty($_GET['uid'])) { if(ctype_digit($_GET['uid'])) { $_SESSION['ref'] = $_GET['uid']; unset($_SESSION['uid']); } header(LOC.URL); exit; }/* or $_SERVER['HTTP_HOST'] == 'www.testynarkotykowe.pl'*/
function loadLib($l) { $pth = DIR_LIB.strtolower($l).N.basename(INX).PHP; if(file_exists($pth)) include_once($pth); else die(_E.'loadLib [ '.$pth.' ]'); }
function loadLang($l,$m) { $pth = DIR_LNG.strtolower($l).N.strtolower($m).N.basename(INX).PHP; if(file_exists($pth)) include_once($pth); else die(_E.'loadLang [ '.$pth.' ]'); } loadLib('url'); @URL::sUrl();

#try { $db = new PDO('mysql:host=localhost;dbname=andypsv_cocain','root','',array(PDO::ATTR_PERSISTENT=>true)); } catch(PDOException $e) { die('PDO::Can\'t connect'); }
try { $db = new PDO('mysql:host=serwer2056122.home.pl;dbname=32538868_thejokerred','32538868_thejokerred','MXXX',array(PDO::ATTR_PERSISTENT=>true)); } catch(PDOException $e) { die('PDO::Can\'t connect'); }
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC); define('PRFX','drugtests_');
$db->query('SET NAMES utf8'); $db->query('SET CHARACTER SET utf8'); $db->query('SET collation_connection = utf8_general_ci'); header('content-type:text/html;charset:utf-8');
$c = $db->query('SELECT * FROM '.PRFX.'cfg'.LG); if($c->rowCount() == 0) die(_E.'X cfg file'); $c = $c->fetch(); foreach($c as $k=>$v) define('PG_'.strtoupper($k),$v);
define('PG_TPL',DIR_TPL.PG_TPLX.DIR_MOD); define('C_NAME',PG_T2); loadLib('ip'); loadLib('auth'); loadLib('pages'); loadLib('func'); loadLib('time');
function uQuery($GET) { if(substr($GET,0,USERNAME_LENGTH) == USERNAME) $sql = 'id = "'.substr($GET,USERNAME_LENGTH).'"'; else $sql = 'uri = "'.$GET.'"'; return $sql; }

function rtrnLoc() { $LENGTH = strlen(URL); if($_SERVER['HTTP_REFERER'] == URL) return URL;	else if(substr($_SERVER['HTTP_REFERER'],0,$LENGTH) == URL) return $_SERVER['HTTP_REFERER']; else return URL; }
function arr_short($arr) { $res = array(); foreach($arr as $subArray) foreach($subArray as $k => $v) $res [$k] = $v; return $res; }
function loadMod($m) { $pth = DIR_MOD.strtolower($m).N.INX.PHP; if(file_exists($pth)) include_once($pth); else exit(header(LOC.URL,true,301)); }
function errLog($err) { global $db; $q = $db->query('INSERT INTO '.PRFX.'err (date,err) VALUES ("'.DATETIME.'","'.$err.'")'); if($q->rowCount() <> 1) die(H.'errLog, fatal failure [not logged error to db]'); else return substr(strstr($err,':'),2); }


class PAGE {
	var $_t,$_k,$_d,$_c,$_nav,$_,$tpl,$u,$md;
	
	function PAGE($md='',$md2='',$md3='',$md4='') { global $db,$md;
		loadLib('timer'); @TIMER::setTimer('all'); require_once(DIR_LIB.DIR_TPL.'class.template'.PHP); $this->tpl = new Template_Lite; $_gTime = TIMER::getTime('all'); $this->tpl->assign('_gTime',$_gTime);
		$this->tpl->assign('URL',URL); define('TPL',URL.DIR_TPL.PG_TPLX); $this->tpl->assign('TPLx',DIR_TPL.PG_TPLX); $CONSTANS = get_defined_constants(); foreach($CONSTANS as $k => $v) $this->tpl->assign($k,$v);
		
		foreach($_POST as $k => $v) if(is_array($_POST[$k])) foreach($_POST[$k] as $k2 => $v2) $_POST[$k][$k2] = htmlspecialchars(trim($v2)); else $_POST[$k] = htmlspecialchars(trim($v));	foreach($_COOKIE as $k => $v) $_COOKIE[$k] = htmlspecialchars(trim($v));
		$this->tpl->assign('_GET',$_GET); $this->tpl->assign('_POST',$_POST); $this->tpl->assign('_COOKIE',$_COOKIE); $this->tpl->assign('_SESSION',$_SESSION); $this->tpl->assign('INX',INX);
		$this->u = isUlogd(str_replace(' ','',PG_T2)); $this->tpl->assign('u',$this->u);
		
		$pth = DIR_LNG.LNG.INX.N.INX.PHP; if(file_exists($pth)) { include_once($pth); $lng_index = $_; } else die(_LNG.' [[ index ]]'); $md = strtolower($md.N); $pth = DIR_LNG.LNG.$md.INX.PHP; $this->md = $md; $this->tpl->assign('md',substr($md,0,-1));
		if(file_exists($pth)) include_once($pth);/* else die(_LNG);*/ $LNG_all = array_merge($lng_index,$_); $_ = '';

		/* HERE IS ISSUE WHEN A FILE IS __INCLUDED <br/> unnecessary, temp-fix: LNG_attached */
		if(!empty($md2)) { $md2 = strtolower($md2.N); $pth = DIR_LNG.LNG.$md2.INX.PHP; if(file_exists($pth)) include_once($pth); else die(_LNG.'2: '.$pth); $md2_index = $_; $LNG_all = array_merge($LNG_all,$md2_index); }
		if(!empty($md3)) { $md3 = strtolower($md3.N); $pth = DIR_LNG.LNG.$md3.INX.PHP; if(file_exists($pth)) include_once($pth); else die(_LNG.'3: '.$pth); $md3_index = $_; $LNG_all = array_merge($LNG_all,$md3_index); }
		if(!empty($md4)) { $md4 = strtolower($md4.N); $pth = DIR_LNG.LNG.$md4.INX.PHP; if(file_exists($pth)) include_once($pth); else die(_LNG.'4: '.$pth); $md4_index = $_; $LNG_all = array_merge($LNG_all,$md4_index); } $this->_ = $LNG_all;
		$this->tpl->assign('_',$this->_); $this->tpl->assign('LG',substr(LG,1));

		//? $this->tpl->assign('i_drugtests','drug_tests/'); if(ctype_digit(end(explode(',',$_GET[0])))) $this->tpl->assign('col2',1);
		$q = $db->query('SELECT * FROM '.PRFX.'c0'.LG); if($q->rowCount() == 0) die(_E.'no categories'); while($_c0 = $q->fetch()) $c0[] = $_c0; $this->tpl->assign('c0',$c0);

		#var_export($_SESSION); die;
		#session_destroy();
		/* CART */
		$q = $db->query('SELECT * FROM `'.PRFX.'products'.LG.'`'); if($q->rowCount() == 0) die(_DB.'no records');
		while($cart = $q->fetch()) {
			$cart['t_url'] = _url($cart['t']);
			$cart['base'] = sprintf('%.2f',$cart['base']);
			$cart['unit_'] = preg_replace('#[0-9]+\.+[0-9]#i','',$cart['unit']);
			if(empty($cart['total'])) $cart['total'] = sprintf('%.2f','0');
			$cart['t__'] = ucfirst($cart['t_']);
			$cart['illegal'] = str_replace("\n",'&lt;br /&gt;',$cart['illegal']);

			if(isset($_SESSION['_'.$cart['t_']])) {
				$cart['amount'] = $_SESSION['_'.$cart['t_']];
				// if($cart['unit'] == '0.1g') $cart['amount'] *= 10;
				$cart['total'] = sprintf('%.2f',$cart['base']*$cart['amount']);
				$cart['price_table'] = explode(NL,$cart['prices']);
				#$cart['discount'] = $cart['total']-(CART::getPrice($cart['price_table'],$cart['amount'])/($tax_rate+1));
				if(substr($cart['discount'],0,1) == '-') $cart['discount'] = substr($cart['discount'],1);
				if($cart['unit'] == '0.1g') $cart['amount'] /= 10;
			} $_cart[] = $cart;
		} $this->tpl->assign('cart',$_cart); $this->tpl->assign('items_in_cart',array_sum_key($_cart,'amount')); $this->tpl->assign('cart_total',sprintf('%.2f',array_sum_key($_cart,'total')));
		
		$q = $db->query('SELECT * FROM '.PRFX.'promotion WHERE ip = "'.getClientIp().'" LIMIT 1'); if($q->rowCount() == 0) {
			$db->exec('INSERT INTO '.PRFX.'promotion (ip,time,u) VALUES ("'.getClientIp().'","'.date('m/d/Y h:i A',strtotime(date('m/d/Y h:i A').' + 2 hours 56 minutes')).'","'.$this->u['nick'].'")');
			$this->tpl->assign('countdownTime',date('m/d/Y h:i A',strtotime(date('m/d/Y h:i A').' + 2 hours 56 minutes')));
		} else { $countdownTime = $q->fetch(); $this->tpl->assign('countdownTime',$countdownTime['time']); }

	}
	
	function run() { global $db;
		$_ON_LOGGED = $db->query('SELECT COUNT(*) FROM `'.PRFX.'u` WHERE session >= '.(time()-300)); $this->tpl->assign('_ON_LOGGED',$_ON_LOGGED->rowCount());
		if(!empty($this->u['id'])) $db->exec('UPDATE `'.PRFX.'u` SET session = "'.time().'" WHERE id = "'.$this->u['id'].'" LIMIT 1'); else $this->u['nick'] = '';
		$db->exec('DELETE FROM `'.PRFX.'u_on` WHERE DATE_ADD(time,INTERVAL 3 HOUR) < NOW()'); $q = $db->query('SELECT u FROM `'.PRFX.'u_on` WHERE ip = "'.getClientIp().'" LIMIT 1');
		if($q->rowCount() == 1) $db->exec('UPDATE `'.PRFX.'u_on` SET time = NOW(),u = "'.$this->u['nick'].'" WHERE ip = "'.getClientIp().'" LIMIT 1'); else $db->exec('INSERT INTO `'.PRFX.'u_on` VALUES ("'.getClientIp().'",NOW(),"'.$this->u['nick'].'")');
		$rlt = $db->query('SELECT COUNT(ip) FROM `'.PRFX.'u_on`'); $this->tpl->assign('_ON',$rlt->rowCount());
		
		/*
		if(!empty($this->u['id'])) {
			$q = q('SELECT COUNT(*) AS total FROM (SELECT * FROM '.PRFX.'messages WHERE _to = "'.$this->u['id'].'" AND `read` = "0" GROUP BY _from ORDER BY id DESC) x ORDER BY id DESC LIMIT 1'); $cnt = f($q); $this->tpl->assign('new_messages',$cnt['total']);
			$q = q('SELECT COUNT(*) as total FROM '.PRFX.'notifications WHERE u_to = "'.$this->u['id'].'" AND `read` = "0" LIMIT 1'); $cnt = f($q); $this->tpl->assign('new_notifs',$cnt['total']);
		}*/

		if(empty($this->_k)) $this->_k = PG_KEYWORDS; if(empty($this->_d)) $this->_d = PG_DESCRIPTION; if(empty($_GET[0])) $t = PG_T_MAIN; else if(empty($this->_t)) $t = ucfirst(PG_T_MAIN); else $t = $this->_t; #.SEP.PG_T;
		$this->tpl->assign('_t',$t); $this->tpl->assign('_k',$this->_k); $this->tpl->assign('_d',$this->_d); $this->tpl->assign('_nav',$this->_nav); $this->tpl->assign('_c',$this->_c); $this->tpl->display(DIR_TPL.N.PG_TPLX.INX.HTML);
	}
	
####
	function mbl($st=true,$redir=true,$loc='') { #if($this->u['ban'] == 1) die('Account Blocked (BAN)');
		foreach($_GET as $k => $v) $uri .= $v.'/';
		
		if($_SERVER['REQUEST_URI'] <> '/login') {
			if(empty($loc)) $loc = substr(str_replace('|login|','',$uri),0,-1);
			if(!empty($this->u['id']) AND $_GET[0] == 'login') exit(header(LOC.URL));
			if(!$st) { if($this->u['id']) if($redir) exit(header(LOC.URL.$loc)); else return false; }
			else { if(!$this->u['id']) if($redir) exit(header(LOC.URL.'login'.N.$loc)); else return false; }
		}
	}
}

if(empty($_GET[0]) OR substr($_GET[0],0,1) == '?') loadMod(PG_H_MOD); elseif(is_dir(DIR_MOD.$_GET[0])) loadMod($_GET[0]); else {
	loadMod(PG_H_MOD); // die(H.'no mod');
} $compressor->finish();

?>``