} if ($_GET['e'] == 404) { $_ENV['status'] = 404; } #£todo:404 redirigé depuis htaccess, mais constante RS=404 déjà définie .. $cgp = $bck = TMP . "block/" . IP; redef('block', $bck); redef('elevation', elevation()); $banblock = BKW; $dr = DR; $u = U; $h = H; $ip = IP; $r = R . 'A74/'; $ips = SIP; $r301 = r3p(SU); redef('CR301', $r301, 1); #not for cronjobs !! calcul du fichier théorique contenant la redirection 301 ####peut tout overrider !!!! $f = TMP . "perf/" . MU . ".db"; if (is_file($f)) { #$_ENV['eval'].="\$preload=Array('autrechose.php');"; ###peut également modifier la variable preload=array('ce,que,je veux') !!!! $_ENV['mtime']['fmtpdata'] = filemtime($f); $x = unserialize(file_get_contents($f)); if ($x['eval']) { eval($x['eval']); } if ($x['vars']) { extract($x['vars']); } //todo:nettoyer l'evaluation de code pour éviter hacking par pré-chargement de fichiers..
function r301depart() { if (isset($_POST['r301']) || !is_file(CR301) || e('nor301', 1) || H == 'cli' || strpos(U, '/sql/')) { return; } $r1 = r3p(mu); if (is_file($r1)) { $r301 = fgc($r1); } else { $r301 = FGC(CR301); } if (J9 && is_file(CR301) && fmt(CR301) < 2000000000) { @UNLINK(CR301); if (is_file($r1)) { @UNLINK($r1); } } #av('a1',fmt(CR301)); if (strlen($r301) > 200 || preg_match("~image/png|base64,|data:~", u)) { db3("r301depart:{$r301}"); return; } if (!$r301 || $r301 == SU) { if (is_file(CR301)) { unlink(CR301); } if (is_file($r1)) { unlink($r1); } return; } $hist = array($r301); FB('r301depart'); #jx('mail','r301:'.$r301."is_file(CR301):".is_file(CR301));db(SU."=>r301 file same or nul=>$r301"); while ($n < 4 && GT('recursiver301') < 400) { $n++; $next = FGC(r3p($r301)); if ($next == SU) { unlink(r3p($r301)); $next = ''; } if ($next) { $hist[] = $next; FPC(CR301, $next, 3); $r301 = $next; } else { $n = 4; } } if (!$r301) { unlink(CR301); return; } #@file_get_contents($r301,'',$GLOBALS['ctx'],0,10);$x=$a=$http_response_header;$a=explode(' ',$a[0]);$a=$a[1];#jx('r'.pre($x)); if (in_Array(SU, $hist)) { db(SU . "=>inArray=>{$r301}"); jx($hist); } if ($r301 == SU) { db(SU . "=>same=>{$r301}=>unlink"); unlink(CR301); return; } if (!$r301) { db("emptyR1" . SU); unlink(CR301); return; } if ($r301) { fmt(CR301); r303($r301); e(',r301'); kill(); } #Fmt(CR301.".count"); #@file_get_contents($r301,'',$GLOBALS['ctx'],0,20);$a=$http_response_header;if(!strpos($a[0],'200 OK'))R301('/'); }