"; } return $q; } function Main(){ global $context; $context['optheader'] = "Main"; $resul = db_query('SELECT id,name,fcount,ccount FROM `sm_smfiles`',__FILE__,__LINE__); while ($line = mysql_fetch_array($resul, MYSQL_ASSOC)) { $context['fileinfo'][] = Array( 'id' => $line['id'], 'name' => $line['name'], ); } usort($context['fileinfo'], "SortByName"); } function SortByName($a, $b) { if ($a['name'] == $b['name']) { return 0; } return ($a['name'] < $b['name']) ? -1 : 1; } function ShowOpts(){ global $context; if(!isset($_GET['id']) || $_GET['id'] == "") exit("No Results found."); if(strlen($_GET['id']) > 30) exit("No Results found."); $context['usetopandbo'] = Array ( false,false); $query = 'SELECT id,func,inc FROM `sm_smfunctions` WHERE LCASE(func) LIKE \'%'.strtolower(mysql_real_escape_string($_GET['id'])).'%\' OR description LIKE \'%'.mysql_real_escape_string($_GET['id']).' %\' COLLATE latin1_swedish_ci'; $result = db_query($query,__FILE__,__LINE__); $context['answers'] = Array(); $context['numresults'] = mysql_num_rows($result); if($context['numresults'] > 100) return; $files = Array (); $i = 0; if($context['numresults'] > 0){ while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $context['answers'][ $line['inc'] ][ $line['id'] ] = $line['func']; $context['lastone'][ $line['inc'] ] = $line['id']; if(!isset( $files [ $line['inc'] ])){ $files [ $line['inc'] ] = $i; $i++; } } $fliped = array_flip( $files ); $query = db_query('SELECT id,name FROM `sm_smfiles` WHERE id IN ('. implode(",",$fliped) .')',__FILE__,__LINE__); while ($line = mysql_fetch_array($query, MYSQL_ASSOC)) { $context['files'][ $line['id'] ] = $line['name']; } } } function ShowInfo(){ global $context; if(!isset($_GET['id']) || $_GET['id'] == "") exit("No Results found."); $query = 'SELECT func,fullfunc,description,treturn,funcinput,exemple,inc,incname,typeof,onerror,version FROM `sm_smfunctions` WHERE id = '.intval($_GET['id']).' LIMIT 1'; $result = db_query($query,__FILE__,__LINE__); $context['numresults'] = mysql_num_rows($result); if($context['numresults'] > 0){ $context['answers'] = mysql_fetch_array($result, MYSQL_ASSOC); $context['topmenu'][] = Array ( $context['answers']['incname'], 'index.php?action=file&id='.$context['answers']['inc'] ); $context['optheader'] = $context['answers']['func']; $result = db_query('SELECT fcount,ccount FROM `sm_smfiles` WHERE id = '.$context['answers']['inc'].' LIMIT 1',__FILE__,__LINE__); $context['fileinfo'] = mysql_fetch_array($result, MYSQL_ASSOC); $result = db_query('SELECT time,poster,body FROM `sm_smposts` WHERE file = '.$context['answers']['inc'].' AND func = '.intval($_GET['id']).'',__FILE__,__LINE__); $context['sm']['pcount'] = mysql_num_rows($result); if($context['sm']['pcount'] > 0){ $context['sm']['posts'] = Array(); while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $context['sm']['posts'][] = Array ( 'poster' => $line['poster'], 'time' => date("F j, Y, g:i a",$line['time']), 'body' => parse_bbc($line['body']), ); } } } } function ShowFile(){ global $context; if(!isset($_GET['id']) || $_GET['id'] == "" || strlen($_GET['id']) > 2) exit("No Results found."); $result = db_query('SELECT name,filename,fcount,ccount FROM `sm_smfiles` WHERE id = '.intval($_GET['id']).' LIMIT 1',__FILE__,__LINE__); $context['letters'] = Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v'); $context['numresults'] = mysql_num_rows($result); if($context['numresults'] > 0){ $info = mysql_fetch_array($result, MYSQL_ASSOC); $context['name'] = $info['name']; $context['filename'] = $info['filename']; $context['fcount'] = $info['fcount']; $context['ccount'] = $info['ccount']; $context['optheader'] = $info['filename']; $result = db_query('SELECT time,poster,body FROM `sm_smposts` WHERE file = '.intval($_GET['id']).' AND func = -1',__FILE__,__LINE__); $context['sm']['pcount'] = mysql_num_rows($result); if($context['sm']['pcount'] > 0){ $context['sm']['posts'] = Array(); while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $context['sm']['posts'][] = Array ( 'poster' => $line['poster'], 'time' => date("F j, Y, g:i a",$line['time']), 'body' => parse_bbc($line['body']), ); } } $context['topmenu'][] = Array ( $context['filename'], 'index.php?action=file&id='.$_GET['id'] ); if(isset($_GET['type']) && $info['fcount'] > 0) return LoadThis(0); if(isset($_GET['file'])) return LoadThis(2); if($info['ccount'] > 0) return LoadThis(1); if($info['fcount'] > 0) return LoadThis(0); return LoadThis(2); } } function LoadThis($type){ global $context; $context['goon'] = $type; switch($type){ case 0: $resul = db_query('SELECT id,func,description FROM `sm_smfunctions` WHERE inc = '.intval($_GET['id']).'',__FILE__,__LINE__); while ($line = mysql_fetch_array($resul, MYSQL_ASSOC)) { $context['infos'][] = Array( 'id' => $line['id'], 'func' => $line['func'], 'desc' => $line['description'], ); } break; case 1: $resul = db_query('SELECT descrip,`fulltext` FROM `sm_smconst` WHERE fileid = '.intval($_GET['id']).'',__FILE__,__LINE__); while ($line = mysql_fetch_array($resul, MYSQL_ASSOC)) { $context['infos'][] = $line; } break; case 2: $resul = db_query('SELECT cont FROM `sm_smfilescon` WHERE id = '.intval($_GET['id']).'',__FILE__,__LINE__); $context['infos'] = mysql_fetch_array($resul, MYSQL_ASSOC); break; } } function HighLight(){ global $context; $context['goon'] = isset($_GET['goon']); if($context['goon']){ if(isset($_POST['signature']) && trim($_POST['signature']) != ""){ $newinfo =stripslashes($_POST['signature']); HighLightThis($newinfo); } elseif (is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) { switch ($_FILES['uploadedfile']['error']){ case 1: $context['imagerror'] = 'The uploaded file exceeds max size.'; break; case 2: $context['imagerror'] = 'The uploaded file exceeds max size.'; break; case 3: $context['imagerror'] = 'The uploaded file was only partially uploaded.'; break; case 7: $context['imagerror'] = 'Failed to write file to disk.'; break; case 8: $context['imagerror'] = 'File upload stopped by extension.'; break; } if(isset($context['imagerror'])) return; $code = file_get_contents($_FILES['uploadedfile']['tmp_name']); HighLightThis($code); $context['topmenu'][] = Array ( $_FILES['uploadedfile']['name'], 'index.php?action=codehigh' ); } else { $context['imagerror'] = 'Could not upload file, or no data found.'; $context['topmenu'][] = Array ( 'MyCode', 'index.php?action=codehigh' ); } } } function HighLightThis($code){ global $context; $search[0] = Array('<?php ','?>'); $replace[1] = Array('',''); $theresults = Array(); $result = mysql_query('SELECT id,func FROM sm_smfunctions') or die('Query failed: ' . mysql_error()); while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $theresults[] = Array ( 'id' => $line['id'], 'func' => $line['func'], 'strlen' => strlen($line['func']), ); } //I need to sort it and do that stupid thing of $thereplaceid so that one function becomes two, like SetClientListeningFlags and SetClientListening usort($theresults, "CompareSTRLEN"); foreach($theresults as $go){ $thereplaceid = "!>"; $search[0][] = $go['func']; $replace[0][] = $thereplaceid; $search[1][] = $thereplaceid; $replace[1][] = '' . $go['func'] . ''; } $result = mysql_query('SELECT id,variable FROM sm_smdefine') or die('Query failed: ' . mysql_error()); while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $search[2][] = $line['variable']; $replace[2][] = '' . $line['variable'] . ''; } $str = highlight_string('', true); $str = str_replace($search[0], $replace[0], $str); $str = str_replace($search[1], $replace[1], $str); $str = str_replace($search[2], $replace[2], $str); $context['str'] = $str; //explode("
",$str); } function PreviewPost(){ echo parse_bbc(stripslashes($_POST['message'])); die(); } function PostThis(){ global $context,$templatefunc; if($context['user']['guest']) exit("3"); if(!isset($_GET['id']) || $_GET['id'] == '' || strlen($_GET['id']) > 5) exit("0"); $typearray = Array ( 'file' , 'func'); if(!isset($_GET['type']) || array_search($_GET['type'], $typearray) === false) exit("0"); if(!isset($_POST['message']) || $_POST['message'] == '') exit("1"); $time = time(); $query = db_query('SELECT time FROM sm_smposts WHERE ip = "'.$context['user']['ip'].'" ORDER BY time DESC LIMIT 1',__FILE__,__LINE__); if(mysql_num_rows($query) > 0){ $line = mysql_fetch_array($query, MYSQL_NUM); if($time < $line[0] + 15) exit("2"); } switch($_GET['type']){ case "file": $query = db_query('SELECT id FROM sm_smfiles WHERE id = '.intval($_GET['id']).' LIMIT 1',__FILE__,__LINE__); if(mysql_num_rows($query) == 0) exit("0"); $file = $_GET['id']; $func = -1; $afterfunc = "ShowFile"; break; case "func": $query = db_query('SELECT inc FROM sm_smfunctions WHERE id = '.intval($_GET['id']).' LIMIT 1',__FILE__,__LINE__); if(mysql_num_rows($query) == 0) exit("0"); $line = mysql_fetch_array($query); $file = $line[0]; $func = $_GET['id']; $afterfunc = "ShowInfo"; break; } db_query('INSERT INTO sm_smposts(file,func,time,poster,body,ip) VALUES ('.$file.','.$func.','.$time.',"'. $context['user']['name'] .'",\''.mysql_real_escape_string($_POST['message']).'\',"'.$context['user']['ip'].'")',__FILE__,__LINE__); $afterfunc(); $templatefunc = $afterfunc . "_template"; } function LoginWebiste(){ echo LoginUser(); exit; } function LogOutWebsite(){ global $cookieaddr, $scripturl, $cookiename; setcookie ($cookiename, '', time() - 100000, '/', $cookieaddr, 0 ,1); echo 'Logging out...'; sleep(2); echo ''; exit; } ?>