connect($sqlhost, $sqluser, $sqlpass) or die("Damn


The MySQL server has exploded.

Error: ". mysql_error() ."

This is not a hack attempt; it is a server problem. "); $sql -> selectdb($dbname) or die("Another stupid MySQL error happened, panic
". mysql_error() .""); } if ($sql -> resultq("SELECT `disable` FROM `misc` WHERE 1")) { require "lib/downtime2.php"; die(" Damn

The board has been taken offline for a while.

This is probably because:
• we're trying to prevent something from going wrong,
• abuse of the forum was taking place and needs to be stopped,
• some idiot thought it'd be fun to disable the board


The forum should be back up within a short time. Until then, please do not panic;
if something bad actually happened, we take backups often. "); } $dateformat = $defaultdateformat; $dateshort = $defaultdateshort; $loguser = array(); if (intvar($loguserid)) { $logpassword = stripslashes($logpassword); $logpassword = shdec($logpassword); if (retvar($logpassword)) { $logpwenc = md5($logpassword); } $loguserq = $sql -> query("SELECT * FROM `users` WHERE `id`='$loguserid' AND `password`='$logpwenc'"); } if ($loguserq && $loguser = $sql -> fetch($loguserq)){ $tzoff = $loguser['timezone'] * 3600; $scheme = $loguser['scheme']; $log = true; if ($loguser['dateformat']) { $dateformat = $loguser['dateformat']; } if ($loguser['dateshort']) { $dateshort = $loguser['dateshort']; } // Code to enable viewing comments. // Checks for a specific item id. Probably could be done better. $hacks['comments'] = mysql_result(mysql_query("SELECT COUNT(*) FROM `users_rpg` WHERE `uid` = '$loguserid' AND (`eq6` = '71' OR `eq6` = '238' OR `eq6` = '43')"), 0); } else { $loguser['viewsig'] = 1; $loguserid = NULL; $loguser = NULL; $logpassword = NULL; $logpwenc = NULL; $loguser['powerlevel'] = 0; $loguser['signsep'] = 0; $log = false; } $power = $loguser['powerlevel']; $banned = ($power <= -1); $ismod = ($power >= 2); $isadmin = ($power >= 3); // Horrible hack. if ( $banned ) $power=0; $specialscheme = ""; // Array of user-agents to force the "mobile scheme" on $smallbrowsers = array("Nintendo DS", "Android", "PSP", "Windows CE"); if ( (str_replace($smallbrowsers, "", $_SERVER['HTTP_USER_AGENT']) != $_SERVER['HTTP_USER_AGENT']) || $_GET['mobile'] == 1) { $loguser['layout'] = 2; $loguser['viewsig'] = 0; $boardtitle = "$boardname"; $x_hacks['smallbrowse'] = true; } $busers = $sql -> query("SELECT id, name FROM users WHERE FROM_UNIXTIME(birthday,'%m-%d')='". date("m-d", ctime()) ."' AND birthday"); $buserids = array(0); while ($buserid = $sql -> fetch($busers)) { $buserids[] = $buserid['id']; } $sql -> query("UPDATE `users` SET `sex` = '255' WHERE `id` IN (". implode(", ", $buserids) .")"); $sql -> query("UPDATE `users` SET `sex` = '2' WHERE `id` NOT IN (". implode(", ", $buserids) .")"); // Here be dragons function readsmilies(){ $fpnt=fopen('smilies.dat','r'); for ($i=0;$smil[$i]=fgetcsv($fpnt,300,',');$i++); $r=fclose($fpnt); return $smil; } // what. function numsmilies(){ $fpnt=fopen('smilies.dat','r'); for($i=0;fgetcsv($fpnt,300,'');$i++); $r=fclose($fpnt); return $i; } function readpostread($userid){ $postreads=mysql_query("SELECT forum,readdate FROM forumread WHERE user=$userid"); while($read1=@mysql_fetch_array($postreads)) $postread[$read1[0]]=$read1[1]; return $postread; } function timeunits($sec){ if($sec<60) return "$sec sec."; if($sec<3600) return floor($sec/60).' min.'; if($sec<7200) return '1 hour'; if($sec<86400) return floor($sec/3600).' hours'; if($sec<172800) return '1 day'; return floor($sec/86400).' days'; } function timeunits2($sec){ $d = floor($sec/86400); $h = floor($sec/3600)%24; $m = floor($sec/60)%60; $s = $sec%60; $ds= ($d!=1?'s':''); $hs= ($h!=1?'s':''); $str=($d?"$d day$ds ":'').($h?"$h hour$hs ":'').($m?"$m min. ":'').($s?"$s sec.":''); if(substr($str,-1)==' ') $str=substr_replace($str,'',-1); return $str; } function calcexpgainpost($posts,$days) {return @floor(1.5*@pow($posts*$days,0.5));} function calcexpgaintime($posts,$days) {return sprintf('%01.3f',172800*@(@pow(@($days/$posts),0.5)/$posts));} function calcexpleft($exp) {return calclvlexp(calclvl($exp)+1)-$exp;} function totallvlexp($lvl) {return calclvlexp($lvl+1)-calclvlexp($lvl);} function calclvlexp($lvl){ if($lvl==1) return 0; else return floor(pow(abs($lvl),3.5))*($lvl>0?1:-1); } function calcexp($posts,$days){ if(@($posts/$days)>0) return floor($posts*pow($posts*$days,0.5)); elseif($posts==0) return 0; else return 'NaN'; } function calclvl($exp){ if($exp>=0){ $lvl=floor(@pow($exp,2/7)); if(calclvlexp($lvl+1)==$exp) $lvl++; if(!$lvl) $lvl=1; }else $lvl=-floor(pow(-$exp,2/7)); if(is_string($exp) && $exp=='NaN') $lvl='NaN'; return $lvl; } function printtimedif($timestart){ global $x_hacks; $timenow=gettimeofday(); $timedif=number_format(microtime(true) - $timestart, 3); /* sprintf('%01.3f',$timenow[sec]+$timenow[usec]/1000000-$timestart); */ print "
$smallfont Page rendered in $timedif seconds."; print "
". errorprinter(true) ."
"; if (!$x_hacks['host']) { $pages = array( "/index.php", "/thread.php", "/forum.php", ); $url = $_SERVER['REQUEST_URI']; if (in_array(substr($url, 0, 14), $pages)) { mysql_query("INSERT INTO `rendertimes` SET `page` = '". addslashes($url) ."', `time` = '". ctime() ."', `rendertime` = '". ($timenow[sec]+$timenow[usec]/1000000-$timestart) ."'"); mysql_query("DELETE FROM `rendertimes` WHERE `time` < '". (ctime() - 86400 * 14) ."'"); } } print ""; } function generatenumbergfx($num,$minlen=0,$double=false){ global $numdir; $nw = 8; if ($double) $nw *= 2; $num=strval($num); if($minlen>1 && strlen($num) < $minlen) { $gfxcode = ''; } for($i=0;$i$v[posts]"),0,0)+1; elseif($in=='&postrank10k&') $out=mysql_result(mysql_query("SELECT count(*) FROM users WHERE posts+10000>$v[posts]"),0,0)+1; elseif($in=='&postrank20k&') $out=mysql_result(mysql_query("SELECT count(*) FROM users WHERE posts+20000>$v[posts]"),0,0)+1; elseif($in=='&postrank30k&') $out=mysql_result(mysql_query("SELECT count(*) FROM users WHERE posts+30000>$v[posts]"),0,0)+1; elseif($in=='&5000&') $out=5000-$v[posts]; elseif($in=='&20000&') $out=20000-$v[posts]; elseif($in=='&30000&') $out=30000-$v[posts]; elseif($in=='&expdone&') $out=$v[expdone]; elseif($in=='&expnext&') $out=$v[expnext]; elseif($in=='&expdone1k&') $out=floor($v[expdone]/1000); elseif($in=='&expnext1k&') $out=floor($v[expnext]/1000); elseif($in=='&expdone10k&') $out=floor($v[expdone]/10000); elseif($in=='&expnext10k&') $out=floor($v[expnext]/10000); elseif($in=='&exppct&') $out=sprintf('%01.1f',@(1-$v[expnext]/$v[lvllen])*100); elseif($in=='&exppct2&') $out=sprintf('%01.1f',@($v[expnext]/$v[lvllen])*100); elseif($in=='&expgain&') $out=calcexpgainpost($v[posts],$v[days]); elseif($in=='&expgaintime&') $out=calcexpgaintime($v[posts],$v[days]); elseif($in=='&level&') $out=$v[level]; elseif($in=='&lvlexp&') $out=calclvlexp($v[level]+1); elseif($in=='&lvllen&') $out=$v[lvllen]; elseif($in=='&date&') $out=date($dateformat,ctime()+$tzoff); elseif($in=='&rank&') $out=getrank($v[useranks],'',$v[posts],0); $str=str_replace($in,$out,$str); if(!stristr($tagval,$in)) $tagval.="\xB0\xBB$in"."\xAB\xB0$out"; } return $str; } function doreplace($msg,$posts,$days,$username,$min=0){ global $tagval,$v; $user=mysql_fetch_array(mysql_query("SELECT * FROM users WHERE name='".addslashes($username)."'")); $v[useranks]=$user[useranks]; $v[username]=$username; $msg=dotag('/me ',$msg); if(!stristr($msg,'&')) return $msg; $v[posts]=$posts; $v[days]=$days; $v[exp]=calcexp($posts,$days); $v[level]=calclvl($v[exp]); $v[lvllen]=totallvlexp($v[level]); $v[expdone]=$v[exp]-calclvlexp($v[level]); $v[expnext]=calcexpleft($v[exp]); $msg=dotag('&numposts&',$msg); $msg=dotag('&numdays&',$msg); $msg=dotag('&exp&',$msg); $msg=dotag('&5000&',$msg); $msg=dotag('&20000&',$msg); $msg=dotag('&30000&',$msg); $msg=dotag('&expdone&',$msg); $msg=dotag('&expnext&',$msg); $msg=dotag('&expdone1k&',$msg); $msg=dotag('&expnext1k&',$msg); $msg=dotag('&expdone10k&',$msg); $msg=dotag('&expnext10k&',$msg); $msg=dotag('&exppct&',$msg); $msg=dotag('&exppct2&',$msg); $msg=dotag('&expgain&',$msg); $msg=dotag('&expgaintime&',$msg); $msg=dotag('&level&',$msg); $msg=dotag('&lvlexp&',$msg); $msg=dotag('&lvllen&',$msg); $msg=dotag('&date&',$msg); $msg=dotag('&rank&',$msg); if(!$min){ $msg=dotag('&postrank&',$msg); $msg=dotag('&postrank10k&',$msg); $msg=dotag('&postrank20k&',$msg); $msg=dotag('&postrank30k&',$msg); } return $msg; } function doreplace2($msg, $options='0|0'){ // options will contain smiliesoff|htmloff $options = explode("|", $options); $smiliesoff = $options[0]; $htmloff = $options[1]; if ($options[2] == 37 && !$_GET['lol'] && false) { $msg = str_split($msg); foreach($msg as $n => $letter) { $y = round(sin($n / 15) * 10); $letter = htmlspecialchars($letter); $rot = "-transform:rotate({$y}deg)"; $msg2 .= "$letter"; } $msg2 = str_replace("\n\n", "
", $msg2); $msg2 = str_replace("\n", "
", $msg2); return $msg2; } $list = array("<", "\\\"" , "\\\\" , "\\'", "[", ":", ")", "_"); $list2 = array("<", "\"", "\\", "\'", "[", ":", ")", "_"); $msg=preg_replace("'\[code\](.*?)\[/code\]'sie", '\''."[quote]".'\''.'.str_replace($list,$list2,\'\\1\').\'[/quote]\'',$msg); if ($htmloff) { $msg = str_replace("<", "<", $msg); $msg = str_replace(">", ">", $msg); } if (!$smiliesoff) { global $smilies; if(!$smilies) $smilies=readsmilies(); for($s=0;$smilies[$s][0];$s++){ $smilie=$smilies[$s]; $msg=str_replace($smilie[0],"",$msg); } } $msg=str_replace('[red]', '',$msg); $msg=str_replace('[green]', '',$msg); $msg=str_replace('[blue]', '',$msg); $msg=str_replace('[orange]','',$msg); $msg=str_replace('[yellow]','',$msg); $msg=str_replace('[pink]', '',$msg); $msg=str_replace('[white]', '',$msg); $msg=str_replace('[black]', '' ,$msg); $msg=str_replace('[/color]','',$msg); $msg=preg_replace("'\[quote=(.*?)\]'si", '
Originally posted by \\1
', $msg); $msg=preg_replace("'\[sp=(.*?)\](.*?)\[/sp\]'si", '\\2', $msg); $msg=str_replace('[quote]','

',$msg); $msg=str_replace('[/quote]','
',$msg); $msg=str_replace('[spoiler]','
Spoiler:
',$msg); $msg=str_replace('[/spoiler]','
',$msg); $msg=preg_replace("'\[(b|i|u|s)\]'si",'<\\1>',$msg); $msg=preg_replace("'\[/(b|i|u|s)\]'si",'',$msg); $msg=preg_replace("'\[img\](.*?)\[/img\]'si", '', $msg); $msg=preg_replace("'\[url\](.*?)\[/url\]'si", '\\1', $msg); $msg=preg_replace("'\[url=(.*?)\](.*?)\[/url\]'si", '\\2', $msg); $msg=preg_replace("/\[trope\](.*?)\[\/trope\]/sie", "''.formatting_trope('\\1').''", $msg); $msg=preg_replace("/\[trope=(.*?)\](.*?)\[\/trope\]/sie", "'\\2'", $msg); $msg=str_replace('http://nightkev.110mb.com/justus_layout.css','about:blank',$msg); do { $msg = preg_replace("/<(\/?)t(able|h|r|d)(.*?)>(\s+?)<(\/?)t(able|h|r|d)(.*?)>/si", "<\\1t\\2\\3><\\5t\\6\\7>", $msg, -1, $replaced); } while ($replaced >= 1); sbr(0,$msg); return $msg; } function settags($text,$tags){ global $hacks; if ($hacks['noposts']) { $badtags = array("&5000&", "&20000&", "&30000&", "&numposts&", ); } for($i=0;$p1"; } $forum1=mysql_query("SELECT id,title,catid FROM forums WHERE (minpower<=$power OR minpower<=0) AND NOT (`id` IN (99, 98)) OR `id` = '$id' ORDER BY forder") or print mysql_error(); while($forum=mysql_fetch_array($forum1)) { $fjump[$forum['catid']] .=""; } foreach($fjump as $jtext) { $forumlinks .= $jtext .""; } $forumlinks.=''; return $forumlinks; } function ctime(){return time()+3*3600;} function cmicrotime(){return microtime(true)+3*3600;} function getrank($rankset,$title,$posts,$powl){ global $hacks; if ($rankset!=3 && $rankset != 5) $posts%=10000; if ($rankset != 255) { $rank=@mysql_result(mysql_query("SELECT text FROM ranks WHERE num<=$posts AND rset=$rankset ORDER BY num DESC LIMIT 1"),0,0); } if ($rankset == 255) { //special code for dots if (!$hacks['noposts']) { $pr[5] = 5000; $pr[4] = 1000; $pr[3] = 250; $pr[2] = 50; $pr[1] = 10; if ($rank) $rank .= "
"; $postsx = $posts; $dotnum[5] = floor($postsx / $pr[5]); $postsx = $postsx - $dotnum[5] * $pr[5]; $dotnum[4] = floor($postsx / $pr[4]); $postsx = $postsx - $dotnum[4] * $pr[4]; $dotnum[3] = floor($postsx / $pr[3]); $postsx = $postsx - $dotnum[3] * $pr[3]; $dotnum[2] = floor($postsx / $pr[2]); $postsx = $postsx - $dotnum[2] * $pr[2]; $dotnum[1] = floor($postsx / $pr[1]); foreach($dotnum as $dot => $num) { for ($x = 0; $x < $num; $x++) { $rank .= ""; } } if ($posts >= 10) $rank = floor($posts / 10) * 10 ." ". $rank; } } if($rank && ($powl or $title)) $rank.='
'; if(!$title){ if($powl==-1) $rank.='Banned'; // if($powl==1) $rank.='Staff'; if($powl==2) $rank.='Moderator'; if($powl==3) $rank.='Administrator'; } else { $rank.=$title; } return $rank; } // Nice GunBound rank set except for the part where it only works when you have over 1000 posts. function updategb() { $hranks = mysql_query("SELECT posts FROM users WHERE posts>=1000 ORDER BY posts DESC"); $c = mysql_num_rows($hranks); for($i=1;($hrank=mysql_fetch_array($hranks)) && $i<=$c*0.7;$i++){ $n=$hrank[posts]; if($i==floor($c*0.001))mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=3%'"); elseif($i==floor($c*0.01)) mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=4%'"); elseif($i==floor($c*0.03)) mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=5%'"); elseif($i==floor($c*0.06)) mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=6%'"); elseif($i==floor($c*0.10)) mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=7%'"); elseif($i==floor($c*0.20)) mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=8%'"); elseif($i==floor($c*0.30)) mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=9%'"); elseif($i==floor($c*0.50)) mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=10%'"); elseif($i==floor($c*0.70)) mysql_query("UPDATE ranks SET num=$n WHERE rset=3 AND text LIKE '%=11%'"); } } function checkuser($name,$pass){ $users = mysql_query("SELECT id FROM users WHERE name='$name' AND password='".md5($pass)."'"); $user = @mysql_fetch_array($users); $u=$user[id]; if($u<1) $u=-1; return $u; } function checkusername($name){ $users=mysql_query("SELECT id FROM users WHERE name='".addslashes($name)."'"); $user=@mysql_fetch_array($users); $u=$user[id]; if($u<1) $u=-1; return $u; } function shenc($str){ $l=strlen($str); for($i=0;$i<$l;$i++){ $n=(308-ord($str[$i]))%256; $e[($i+5983)%$l]+=floor($n/16); $e[($i+5984)%$l]+=($n%16)*16; } for($i=0;$i<$l;$i++) $s.=chr($e[$i]); return $s; } function shdec($str){ $l = strlen($str); $s = ""; $o = 10000 - 10000 % $l; for($i=0;$i<$l;$i++){ $n=ord($str[$i]); $e[($i+$o-5984)%$l] += floor($n/16); $e[($i+$o-5983)%$l] += ($n%16)*16; } for($i=0;$i<$l;$i++){ $e[$i] = (308-$e[$i])%256; $s .= chr($e[$i]); } return $s; } function fadec($c1,$c2,$pct) { $pct2=1-$pct; $cx1[r]=hexdec(substr($c1,0,2)); $cx1[g]=hexdec(substr($c1,2,2)); $cx1[b]=hexdec(substr($c1,4,2)); $cx2[r]=hexdec(substr($c2,0,2)); $cx2[g]=hexdec(substr($c2,2,2)); $cx2[b]=hexdec(substr($c2,4,2)); $ret=floor($cx1[r]*$pct2+$cx2[r]*$pct)*65536+ floor($cx1[g]*$pct2+$cx2[g]*$pct)*256+ floor($cx1[b]*$pct2+$cx2[b]*$pct); $ret=dechex($ret); return $ret; } function fonlineusers($id){ global $userip,$loguserid; if($loguserid) { mysql_query("UPDATE users SET lastforum=$id WHERE id=$loguserid"); } else { mysql_query("UPDATE guests SET lastforum=$id WHERE ip='$userip'"); } $forumname=@mysql_result(mysql_query("SELECT title FROM forums WHERE id=$id"),0,0); $onlinetime=ctime()-300; $onusers=mysql_query("SELECT id,name,powerlevel,lastactivity,sex,minipic,lasturl FROM users WHERE lastactivity>$onlinetime AND lastforum=$id ORDER BY name"); $onlineusers = array(); while ($onuser = mysql_fetch_array($onusers)) { $namecolor = getnamecolor($onuser['sex'],$onuser['powerlevel']); $namelink ="$onuser[name]"; $onuser['minipic'] = htmlspecialchars($onuser['minipic']); $onlineusers[] = "". ($onuser['minipic'] ? " " : "") . ($onuser['lastactivity'] <= $onlinetime ? "($namelink)" : $namelink) .""; } $onlineuserst = implode(", ", $onlineusers); $numon = count($onlineusers); $p = ($numon ? ':' : '.'); $s = ($numon != 1 ? 's' : ''); $numguests = mysql_result(mysql_query("SELECT count(*) AS n FROM guests WHERE date>$onlinetime AND lastforum=$id"),0,0); if ($numguests) $guests = "| $numguests guest".($numguests != 1 ? 's' : ''); return "$numon user$s currently in $forumname$p $onlineuserst $guests"; } // BIG GIANT GROSS HACK OH MY GOD. function getnamecolor($sex,$powl){ global $nmcol, $x_hacks; //$namecolor='color='.$nmcol[$sex][$powl]; if($powl>=-1 && $sex != 255 && !$x_hacks['100000']){ $namecolor='color='.$nmcol[$sex][$powl]; } else { $stime=gettimeofday(); $h=(($stime[usec]/5)%600); if ($h<100) { $r=255; $g=155+$h; $b=155; } elseif($h<200) { $r=255-$h+100; $g=255; $b=155; } elseif($h<300) { $r=155; $g=255; $b=155+$h-200; } elseif($h<400) { $r=155; $g=255-$h+300; $b=255; } elseif($h<500) { $r=155+$h-400; $g=155; $b=255; } else { $r=255; $g=155; $b=255-$h+500; } $rndcolor=substr(dechex($r*65536+$g*256+$b),-6); $namecolor="color=$rndcolor"; return $namecolor; } if($sex==3){ $stime=gettimeofday(); $rndcolor=substr(dechex(1677722+$stime[usec]*15),-6); $namecolor="color=$rndcolor"; $nc = mt_rand(0,0xffffff); $namecolor = "color=". str_pad(dechex($nc), 6, "0", STR_PAD_LEFT); } if ($sex == 5) { $namecolor="color=1111aa"; $z = max(0, 32400 - (mktime(22, 0, 0, 3, 7, 2008) - ctime())); $c = 127 + max(floor($z / 32400 * 127), 0); // print $c; $cz = str_pad(dechex(256 - $c), 2, "0", STR_PAD_LEFT); $namecolor = "color=". str_pad(dechex($c), 2, "0", STR_PAD_LEFT) . $cz . $cz; // $namecolor="color=888888"; } elseif ($sex == 4) { // $namecolor="color=7777ff"; // $namecolor="color=ff3065"; // $namecolor="color=dd0000"; // $namecolor="color=888888"; $namecolor="color=ffffff"; # $namecolor="color=6666cc"; # $namecolor="color=9999ff"; } elseif ($sex == 6) { // $namecolor="color=8080ff"; $namecolor="color=60c000"; // $namecolor="color=888888"; // hurf durf BMF is banned } elseif ($sex == 7) { // $namecolor="color=117011"; // $namecolor="color=a040c0"; // $namecolor="color=ffe8ab"; // $namecolor="color=8888ff"; $namecolor="color=ff3333"; } elseif ($sex == 8) { $namecolor="color=6688AA"; } elseif ($sex == 9) { $namecolor="color=CC99FF"; } elseif ($sex == 10) { $namecolor="color=ff0000"; } elseif ($sex == 11) { $namecolor="color=6ddde7"; # $namecolor="color=888888"; } elseif ($sex == 12) { $namecolor="color=E2D315"; } elseif ($sex == 13) { $namecolor="color=94132E"; } elseif ($sex == 41) { $namecolor="color=8a5231"; } elseif ($sex == 42) { $namecolor="color=20c020"; } elseif ($sex == 99) { $namecolor="color=EBA029"; } elseif ($sex == 98) { $namecolor="color=". $nmcol[0][3]; } elseif ($sex == 97) { $namecolor="color=6600DD"; } return $namecolor; } function redirect($url,$msg,$delay){ if($delay<1) $delay=1; return "You will now be redirected to $msg..."; } function postradar($userid){ $postradar=mysql_query("SELECT name,posts,sex,powerlevel,id FROM users,postradar WHERE postradar.user=$userid AND users.id=postradar.comp ORDER BY posts DESC"); if (@mysql_num_rows($postradar)>0) { $race='You are '; function cu($a,$b){ global $hacks; $dif=$a[1]-$b[1]; $t=(!$hacks['noposts'] ? $dif : "") ." ahead of"; if ($dif<0) { $dif=-$dif; $t=(!$hacks['noposts'] ? $dif : "") ." behind"; } if($dif==0) $t=' tied with'; $namecolor=getnamecolor($b[sex],$b[powerlevel]); $namelink="$b[name]"; $t.=" $namelink". (!$hacks['noposts'] ? " ($b[1])" : ""); return $t; } $user1=mysql_fetch_array(mysql_query("SELECT name,posts,id FROM users WHERE id=$userid")); for($i=0;$user2=mysql_fetch_array($postradar);$i++){ if($i) $race.=', '; if($i and $i==mysql_num_rows($postradar)-1) $race.='and '; $race.=cu($user1,$user2); } } return $race; } function loaduser($id,$type){ if ($type==1) {$fields='id,name,sex,powerlevel,posts';} return @mysql_fetch_array(mysql_query("SELECT $fields FROM users WHERE id=$id")); } function getpostlayoutid($text){ $id=@mysql_result(mysql_query("SELECT id FROM postlayouts WHERE text='".addslashes($text)."' LIMIT 1"),0,0); if(!$id){ mysql_query("INSERT INTO postlayouts (text) VALUES ('".addslashes($text)."')"); $id=mysql_insert_id(); } return $id; } function squot($t, &$src){ switch($t){ case 0: $src=htmlspecialchars($src); break; case 1: $src=urlencode($src); break; case 2: $src=str_replace('"','"',$src); break; case 3: $src=urldecode('%22','"',$src); break; } /* switch($t){ case 0: $src=str_replace('"','"',$src); break; case 1: $src=str_replace('"','%22',$src); break; case 2: $src=str_replace('"','"',$src); break; case 3: $src=str_replace('%22','"',$src); break; }*/ } function sbr($t, &$src){ global $br; switch($t) { case 0: $src=str_replace($br,'
',$src); break; case 1: $src=str_replace('
',$br,$src); break; } } // who put this here? function mysql_get($query){ return mysql_fetch_array(mysql_query($query)); } function sizelimitjs(){ // where the fuck is this used?! return ""; /*return ' '; */ } function loadtlayout(){ global $log,$loguser,$tlayout; $tlayout = ($loguser['layout'] ? $loguser['layout'] : 1); $layoutfile = mysql_result(mysql_query("SELECT file FROM tlayouts WHERE id=$tlayout"),0,0); require "tlayouts/$layoutfile.php"; } function errorpage($text){ global $header,$tblstart,$tccell1,$tblend,$footer; die("$header
$tblstart$tccell1>$text$tblend$footer"); } function moodlist($sel = 0, $return = false) { global $loguserid; $sel = floor($sel); $a = array("None", "neutral", "angry", "tired/upset", "playful", "doom", "delight", "guru", "hope", "puzzled", "whatever", "hyperactive", "sadness", "bleh", "embarassed", "amused", "afraid"); if ($loguserid == 1) $a[99] = "special"; if ($return) return $a; $c[$sel] = " checked"; foreach($a as $num => $name) { $ret .= (($num) % 6 ? "   " : ($num ? "\n
" : "")) ."\r\n"; } return $ret; } function adminlinkbar($sel = 0) { global $tblstart, $tblend, $tccell1, $tccellh, $tccellc, $isadmin; if (!$isadmin) return; $links = array( 'admin.php' => "Home", // 'admin-todo.php' => "To-do list", 'announcement.php' => "Announcements", 'admin-threads.php' => "ThreadFix", 'admin-threads2.php' => "ThreadFix 2", 'ipsearch.php' => "IP Search", 'editmods.php' => "Local Moderators", 'del.php' => "Delete User", ); $c = count($links); $w = floor(1 / $c * 100); $r = "$tblstart$tccellh colspan=$c>Admin Functions"; foreach($links as $link => $name) { $cell = $tccell1; if ($link == $sel) $cell = $tccellc; $r .= "$cell width=\"$w%\">$name"; } return $r ."$tblend
"; } function nuke_js($before, $after) { global $sql, $loguser; $page = addslashes($_SERVER['REQUEST_URI']); $time = ctime(); $sql -> query("INSERT INTO `jstrap` SET `loguser` = '". $loguser['id'] ."', `ip` = '". $_SERVER['REMOTE_ADDR'] ."', `text` = '". addslashes($before) ."', `url` = '$page', `time` = '$time', `filtered` = '". addslashes($after) ."'"); } function include_js($fn, $as_tag = false) { // HANDY JAVASCRIPT INCLUSION FUNCTION if ($as_tag) { // include as a tag return ""; } else { $f = fopen("../js/$fn",'r'); $c = fread($f, filesize($fn)); fclose($f); return ''; } } function dofilters($p){ global $hacks; $temp = $p; if ($_GET['t'] && false) { $p=preg_replace("''si",'',$p); $p=preg_replace("'oad',$p); $p=preg_replace("'onerror'si",'onerror',$p); $p=preg_replace("'onunload'si",'onunload',$p); $p=preg_replace("'onchange'si",'onchange',$p); $p=preg_replace("'onsubmit'si",'onsubmit',$p); $p=preg_replace("'onreset'si",'onreset',$p); $p=preg_replace("'onselect'si",'onselect',$p); $p=preg_replace("'onblur'si",'onblur',$p); $p=preg_replace("'onfocus'si",'onfocus',$p); $p=preg_replace("'onclick'si",'onclick',$p); $p=preg_replace("'ondblclick'si",'ondblclick',$p); $p=preg_replace("'onmousedown'si",'onmousedown',$p); $p=preg_replace("'onmousemove'si",'onmousemove',$p); $p=preg_replace("'onmouseout'si",'onmouseout',$p); $p=preg_replace("'onmouseover'si",'onmouseover',$p); $p=preg_replace("'onmouseup'si",'onmouseup',$p); if ($temp != $p) { nuke_js($temp, $p); } } //$p=preg_replace("''si","",$p); $p=preg_replace("'autoplay'si",'',$p); // kills autoplay, need to think of a solution for embeds. $p=preg_replace("'filter:alpha'si",'falpha',$p); $p=preg_replace("'filter:'si",'x:',$p); if (!$_GET['nofilter']) $p=preg_replace("'opacity'si",'opacity',$p); //$p=preg_replace("':awesome:'","[unfunny]", $p); $p=preg_replace("'falpha'si",'filter:alpha',$p); $p=preg_replace("':facepalm:'si",'',$p); $p=preg_replace("':epicburn:'si",'',$p); $p=preg_replace("':umad:'si",'',$p); $p=preg_replace("':gamepro5:'si",'',$p); $p=preg_replace("':headdesk:'si",'',$p); $p=preg_replace("':rereggie:'si",'',$p); $p=preg_replace("':tmyk:'si",'',$p); $p=preg_replace("':jmsu:'si",'',$p); $p=preg_replace("':apathy:'si",'',$p); $p=preg_replace("':spinnaz:'si", '', $p); $p=preg_replace("':trolldra:'si", '', $p); $p=preg_replace("'drama'si", 'batter blaster', $p); // $p=preg_replace("'TheKinoko'si", 'MY NAME MEANS MUSHROOM... IN JAPANESE! HOLY SHIT GUYS THIS IS INCREDIBLE!!!!!!!!!', $p); $p=preg_replace("':facepalm2:'si",'',$p); $p=preg_replace("':reggie:'si",'',$p); $p=preg_replace("'crashdance'si",'CrashDunce',$p); $p=preg_replace("'get blue spheres'si",'HI EVERYBODY I\'M A RETARD PLEASE BAN ME',$p); // $p=preg_replace("'hopy'si",'I am a dumb',$p); $p=preg_replace("'zeon'si",'shit',$p); $p=preg_replace("'faith in humanity'si",'IQ',$p); # $p=preg_replace("'nintendo'si",'grandma',$p); $p=str_replace("ftp://teconmoon.no-ip.org", 'about:blank', $p); if ($hacks['comments']) { $p=str_replace("", '-->
', $p); } $p=str_replace("http://insectduel.proboards82.com","http://jul.rustedlogic.net/idiotredir.php?",$p); $p=str_replace("http://imageshack.us", "imageshit", $p); $p=str_replace('',"",$p); $p=str_replace("tabindex=\"0\" ","title=\"the owner of this button is a fucking dumbass\" ",$p); $p=str_replace("%WIKISTATSFRAME%","
",$p); $p=str_replace("%WIKISTATSFRAME2%", '
', $p); // $p=str_replace("http://xkeeper.shacknet.nu:5/", 'http://xchan.shacknet.nu:5/', $p); // $p=preg_replace("'okie',$p); $p=preg_replace("'eval'si",'eval',$p); // $p=preg_replace("'document.'si",'docufail.',$p); $p=preg_replace("'script',$p); $p=preg_replace("'javascript:'si",'javascript:',$p); $p=preg_replace("'iframe',$p); $p=preg_replace("'meta',$p); return $p; } require 'lib/threadpost.php'; // require 'lib/replytoolbar.php'; function replytoolbar() { return; } function addslashes_array($data) { if (is_array($data)){ foreach ($data as $key => $value){ $data[$key] = addslashes_array($value); } return $data; } else { return addslashes($data); } } function xk_ircout($type, $user, $in) { // gone // return; # and back $dest = min(1, max(0, $in['pow'])); if ($in['fid'] == 99) { $dest = 6; } elseif ($in['fid'] == 98) { $dest = 7; } global $x_hacks; if ($x_hacks['host']) return; if ($type == "user") { if ($in['pmatch']) { $color = array(8, 7); if ($in['pmatch'] >= 3) $color = array(7, 4); elseif ($in['pmatch'] >= 5) $color = array(4, 5); $extra = " (". xk($color[1]) ."Password matches: ". xk($color[0]) . $in['pmatch'] . xk() .")"; } $out = "1|New user: #". xk(12) . $in['id'] . xk(11) ." $user ". xk() ."(IP: ". xk(12) . $in['ip'] . xk() .")$extra: http://jul.rustedlogic.net/?u=". $in['id']; } else { // global $sql; // $res = $sql -> resultq("SELECT COUNT(`id`) FROM `posts`"); $out = "$dest|New $type by ". xk(11) . $user . xk() ." (". xk(12) . $in['forum'] .": ". xk(11) . $in['thread'] . xk() ."): http://jul.rustedlogic.net/?p=". $in['pid']; } xk_ircsend($out); } function xk_ircsend($str) { $str = str_replace(array("%10", "%13"), array("", ""), rawurlencode($str)); $ch = curl_init(); // Note to potential dumbasses: this does check the incoming IP so don't bother. curl_setopt ($ch,CURLOPT_URL, "http://treeki.shacknet.nu:5000/reporting.php?t=$str"); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt ($ch, CURLOPT_TIMEOUT, 5); $file_contents = curl_exec($ch); curl_close($ch); return true; } function xk($n = -1) { if ($n == -1) $k = ""; else $k = str_pad($n, 2, 0, STR_PAD_LEFT); return "\x03". $k; // return; } function formatting_trope($input) { $in = "/[A-Z][^A-Z]/"; $out = " \\0"; $output = preg_replace($in, $out, $input); return trim($output); } /* extra fun functions! */ function pick_any($array) { if (is_array($array)) { return $array[array_rand($array)]; } elseif (is_string($array)) { return $array; } } function marqueeshit($str) { return "$str"; } // additional includes` require_once "lib/datetime.php"; function unescape($in) { $out = urldecode($in); while ($out != $in) { $in = $out; $out = urldecode($in); } return $out; } function adbox() { global $loguser, $bgcolor, $linkcolor; $tagline = array(); $tagline[] = "Viewing this ad requires
ZSNES 1.42 or older!"; $tagline[] = "Celebrating 5 years of
ripping off SMAS!"; $tagline[] = "Now with 100% more
buggy custom sprites!"; $tagline[] = "Try using AddMusic to give your hack
that 1999 homepage feel!"; $tagline[] = "Pipe cutoff? In my SMW hack?
It's more likely than you think!"; $tagline[] = "Just keep giving us your money!"; $tagline[] = "Now with 97% more floating munchers!"; $tagline[] = "Tip: If you can beat your level without
savestates, it's too easy!"; $tagline[] = "Tip: Leave exits to level 0 for
easy access to that fun bonus game!"; $tagline[] = "Now with 100% more Touhou fads!
It's like Jul, but three years behind!"; $tagline[] = "Isn't as cool as this
witty subtitle!"; $tagline[] = "Finally beta!"; $tagline[] = "If this is blocking other text
try disabling AdBlock next time!"; $tagline[] = "bsnes sucks!"; $tagline[] = "Now in raspberry, papaya,
and roast beef flavors!"; $tagline[] = "We <3 terrible Japanese hacks!"; $tagline[] = "573 crappy joke hacks and counting!"; $tagline[] = "Don't forget your RATS tag!"; $tagline[] = "Now with exclusive support for
127½Mbit SuperUltraFastHiDereROM!"; $tagline[] = "More SMW sequels than you can
shake a dead horse at!"; $tagline[] = "xkas v0.06 or bust!"; $tagline[] = "SMWC is calling for your blood!"; $tagline[] = "You can run,
but you can't hide!"; $tagline[] = "Now with 157% more CSS3!"; $tagline[] = "Stickers and cake don't mix!"; $tagline[] = "Better than a 4-star crap cake
with garlic topping!"; $tagline[] = "We need some IRC COPS!"; $s = (isset($_GET['lolol']) ? $_GET['lolol'] + 1 : 0) % count($tagline); if (isset($_GET['lolol'])) { $taglinec = $_GET['lolol'] % count($tagline); $taglinec = $tagline[$taglinec]; } else { $taglinec = pick_any($tagline); } return "
"; } // Kill the internal PHP error handler because good god there are just so many of them function errorhandler($type, $msg = "", $file = "", $line = "", $context = array()) { static $elog = array(); if ($type == -1) { $output = ""; foreach ($elog as $out) { $output .= "$out
\n"; } return $output; } $errortypes = array( E_ERROR => "Error", E_WARNING => "Warning", E_PARSE => "Parse Error", E_NOTICE => "Notice", E_CORE_ERROR => "Core Error", E_CORE_WARNING => "Core Warning", E_COMPILE_ERROR => "Compile Error", E_COMPILE_WARNING => "Compile Warning", E_USER_ERROR => "User Error", E_USER_WARNING => "User Warning", E_USER_NOTICE => "User Notice", E_STRICT => "Strict Notice", E_RECOVERABLE_ERROR => "Recoverable Error", ); $elog[] = $errortypes[$type] ." (". str_replace($_SERVER['DOCUMENT_ROOT'], "", $file) ." #$line) ". htmlspecialchars($msg); } // Function runs twice, once when called by printtimedif and once at the end of a script // If it's called in printtimedif, it doesn't print the errors twice (that way they always get out even if printtimedif isn't called) // Also tries to not break gd-images or other things function errorprinter($return = false) { static $done = false; global $displayerrors; if ($displayerrors && !$done) { $done = true; $headers = headers_list(); $silence = false; // Half-heartedly check to see if this is a PHP-generated image or some other fun thing. // If so, try to silence error reporting so that they don't break. foreach ($headers as $header) { if (strpos($header, "Content-type:") !== false && strpos($header, "image/") !== false) { $silence = true; } } if (!$silence) { if ($return) { return errorhandler(-1); } else { print errorhandler(-1); } } } return true; } function retvar(&$v) { return $v; } function intvar(&$v) { $v = intval($v); return $v; }