1) { header('Location: http://htnsrv.org/pub.php'); exit; } define('IN_HTN',1); $starttime=microtime(); include('config.php'); if (!$htnlan_installed) { header("Location: install.php"); } include('gres.php'); include('layout.php'); define('REG_CODE_LEN',24,false); $action=$_REQUEST['page']; if($action=='') $action=$_REQUEST['mode']; if($action=='') $action=$_REQUEST['action']; if($action=='') $action=$_REQUEST['a']; if($action=='') $action=$_REQUEST['m']; if($action=='') $action=$_REQUEST['d']; function showdoc($te='',$fn) { if($te!='') $x=' - '.$te; createlayout_top('HackTheNet'.$x); $x='data/pubtxt/'.$fn; if(file_exists($x.'.txt')) readfile($x.'.txt'); else @include($x.'.php'); createlayout_bottom(); } function showdoc_single($te='',$fn) { if($te!='') $x=' - '.$te; createlayout_top(); $x='data/pubtxt/'.$fn; if(file_exists($x.'.txt')) readfile($x.'.txt'); else @include($x.'.php'); createlayout_bottom(); } switch($action) { case 'faq': showdoc('FAQ','faq'); break; case 'credits': showdoc('Team','credits'); break; case 'newpwd': showdoc_single('Neues Passwort anfordern','newpwd'); break; case 'rules': showdoc('Regeln','rules'); break; case 'chat': showdoc('Chat','chat'); break; case 'impressum': showdoc('Impressum','impressum'); break; case 'refinfo': showdoc('Werben von neuen Benutzern','refinfo'); break; case 'regelverstoss': showdoc('Regelverstoß melden','regelverstoss'); break; break; case 'register': createlayout_top('HackTheNet - Account anlegen'); echo '
'; if ($notif=='') { echo '
'."\n"; echo '

Wichtig!

'."\n"; echo '

Jeder User verpflichtet sich, die Regeln einzuhalten.
'.LF.'Verstöße gegen die Regeln führen zum Ausschluss vom Spiel!

'."\n"; echo '
'."\n"; } echo $notif.'

Schritt 1: Zugangsdaten und Server

Gewünschter NickName:
Deine Email-Adresse:
Nur wenn eine korrekte Email-Adresse angegeben wurde, kann der Account aktiviert werden!
'; createlayout_bottom(); break; case 'baduser': $nick1=$_POST['nick1']; $nick2=trim($_POST['nick2']); $text=trim($_POST['text']); createlayout_top('HackTheNet - Regelverstoß'); echo '

Regelverstoß gemeldet

'; if($nick2!='' & $text!='') { @mail('info@htn-lan.com', 'Regelverstoß gemeldet von '.$nick1, $nick2.' hat angeblich folgendes getan:'.LF."\n".$text, 'From: HackTheNet '); echo '

Gemeldet.

Danke für deine Hilfe!

'; } else echo '

Fehler

Du musst schon den User angeben, der gegen die Regeln verstoßen hat!
Auch was er getan hat, ist wichtig!

'; echo '
'; createlayout_bottom(); break; case 'comment': $newsid=$_REQUEST['id']; if (!is_numeric($newsid)) { echo 'hacking attempt.'; exit(); } $news=getnews($newsid); if($news!=false) { createlayout_top('HackTheNet - News - '.$news['kategorie'].' :: '.$news['title'].''); echo '

'.$news['kategorie'].' :: '.$news['title'].'

'; echo '

Erstellt am: '.date("d.m.Y", $news['time']).', '.date("H:i", $news['time']).' Uhr

'; if ($_GET['b']=="") { $relatedlinks=''; if ($news['url1']!="" && $news['link1']!="") { $relatedlinks.="".$news['link1']."
"; } if ($news['url2']!="" && $news['link2']!="") { $relatedlinks.="".$news['link2']."
"; } if ($news['url3']!="" && $news['link3']!="") { $relatedlinks.="".$news['link3']."
"; } if ($relatedlinks=="") { $relatedlinks="nicht vorhanden"; } if ($usr['stat']>=100) { $adminoption="edit | del"; } else { $adminoption=""; } echo "
".$news['kategorie']." :: ".$news['title']." ".$adminoption."Related Links:
".text_replace(nl2br($news['text']))."".$relatedlinks."
erstellt am: ".date("d.m.Y", $news['time']).", ".date("H:i", $news['time'])." Uhr von ".$news['autor']." 

"; $comments_pro_page=5; $page=$_GET['p']; $maxpages=ceil(mysql_num_rows(mysql_query('SELECT id FROM news_comment WHERE news_id='.$newsid))/$comments_pro_page); if ($page=="") { $page=1; } if (!is_numeric($page)) { echo 'hacking attempt.'; exit(); } if ($page<1) { $page=1; } if ($page>$maxpages) { $page=1; } $sql=mysql_query('SELECT * FROM news_comment WHERE news_id='.mysql_escape_string($newsid).' ORDER BY id ASC LIMIT '.($page -1) * $comments_pro_page.','.$comments_pro_page); if (mysql_num_rows($sql)>0) { echo "

Kommentare

"; echo ""; while($comments=mysql_fetch_array($sql)) { if ($usr['stat']>=100) { $adminoption="edit | del"; } else { $adminoption=""; } echo ""; } echo "
".$comments['titel']." von ".$comments['autor']." am: ".date("d.m.Y", $comments['time']).", um ".date("H:i", $comments['time'])." Uhr ".$adminoption."
".text_replace(nl2br($comments['text']))."

"; if ($maxpages>1) { $pagem = $page - 1; $pagep = $page + 1; $pagepp = $page + 2; echo "
« "; if (!($page == "1")) { echo "< "; } else { echo "< "; } if ($page == "1") { echo "1 "; if ($maxpages >= "2") { echo "2 "; } if ($maxpages >= "3") { echo "3 "; } } else { if ($maxpages >= $pagem) { echo "".$pagem." "; } if ($maxpages >= $page) { echo $page." "; } if ($maxpages >= $pagep) { echo "".$pagep." "; } } if ($pagep > $maxpages) { echo "> "; } else { echo "> "; } echo "»
"; } } else { echo '

Kommentare

'."\n"; echo'
Es wurden noch keine Kommentare geschrieben
'."\n"; } if ($usr['name']!="") { echo "

Kommentare hinzufügen

Username:".$usr['name']."
Titel:
Text:
 

"; } } if ($_GET['b']=="add" && $usr['name']!="") { if (strlen($_POST['text'])>1000) { echo 'Übertreib es nicht. Text maximal 1000 Zeichen'; exit(); } elseif (strlen($_POST['titel'])>40) { echo 'Übertreib es nicht. Titel maximal 40 Zeichen'; exit(); } elseif ($_POST['titel']=="") { echo 'Titel wurde nicht angegeben.'; } elseif ($_POST['text']=="") { echo 'Text wurde nicht angegeben.'; } else { mysql_query('INSERT INTO news_comment(`id`, `autor`, `autor_id`, `ip`, `time`, `news_id`, `text`, `titel`) VALUES("", "'.$usr['name'].'", "'.$usrid.'", "'.$usr['sid_ip'].'", "'.time().'", "'.$newsid.'", "'.text_replace(mysql_escape_string(htmlspecialchars($_POST['text']))).'", "'.text_replace(mysql_escape_string(htmlspecialchars($_POST['titel']))).'")'); echo '
Kommentar wurde hinzugefügt.
'; } } } else simple_message('Diesen News-Eintrag gibt es nicht!'); createlayout_bottom(); break; case 'regsubmit': // ----------------------- RegSubmit -------------------------- $email=trim($_POST['email']); $nick=trim($_POST['nick']); $server=(int)$_POST['server']; if($server<1 || $server>2) $server=2; mysql_select_db(dbname($server)); $info=gettableinfo('users',dbname($server)); if($info['Rows']>=MAX_USERS_PER_SERVER) exit; $e=false; $badwords='rio|schnitzel|unknown|xxxunknownxxx|admin|4dmin|adm1n|@dmin|fuck|fick|sex|porn|penis|vagina|arsch|hitler|himmler|goebbels|göbbels|hure|nutte|fotze|bitch|schlampe'; # nein, king ist kein böses, sondern ein reserviertes wort ^^ $nickzeichen='abcdefghijklmnopqrstuvwxyzäüöABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß0123456789_-:@.!=?\$%/&'; function checknick($nick) { global $STYLESHEET, $REMOTE_FILES_DIR, $DATADIR, $nickzeichen; $b=true; $len=strlen($nick); for($i=0;$i<$len;$i++) { $zz=substr($nick,$i,1); if(strstr($nickzeichen,(string)$zz)==false) { $b=false; break; } } $x=eregi_replace('[-_:@.!=?$%&/0-9]','',$nick); if(trim($x)=='') $b=false; return $b; } $result = mysql_query('SELECT * FROM blacklist WHERE name="'.$nick.'" || email = "'.$email.'"'); if($nick!='') { if(mysql_num_rows($result)>0) { $e=true; $msg.='Du stehst auf der HTN.Lan Blacklist!
'; } if(getuser($email,'email')!==false) { $e=true; $msg.='Ein Benutzer mit dieser Emailadresse existiert bereits!
'; } if(getuser($nick,'name')!==false) { $e=true; $msg.='Ein Benutzer mit diesem Nicknamen existiert bereits!
'; } if(checknick($nick)==false) { $e=true; $msg.='Der Nickname darf NUR die Zeichen '.$nickzeichen.' enthalten. Außerdem darf er nicht nur aus Sonderzeichen bestehen.
'; } if(strlen($nick)<3 | strlen($nick)>20) { $e=true; $msg.='Der Nickname muss zwischen 3 und 20 Zeichen lang sein.
'; } $x=eregi_replace('[-_:@.!=?$%&/0-9]','',$nick); if(eregi('('.$badwords.')',$x)!=false) { $e=true; $msg.='Der Nickname darf bestimmte Wörter nicht enthalten.
'; } } else { $e=true; $msg.='Bitte Nickname eingeben.
'; } if(!check_email($email)) { $e=true; $msg.='Bitte eine gültige Email-Adresse im Format x@y.z angeben.
'; } $javascript=file_get('data/pubtxt/selcountry_head.txt'); if($e==false) { createlayout_top('HackTheNet - Account anlegen'); $pwd=generateMnemonicPassword(); $tmpfnx=randomx(REG_CODE_LEN); $tmpfn='data/regtmp/'.$tmpfnx.'.txt'; file_put($tmpfn,$nick.'|'.$email.'|'.$pwd.'|'.$server); $selcode=str_replace('%path%','images/maps',file_get('data/pubtxt/selcountry_body.txt')); echo '

Schritt 2: Land auswählen

Bitte wähle jetzt, in welchem Land der Erde dein Computer stehen soll. Natürlich nur im Spiel und nicht in echt...

'.$selcode.'
'; createlayout_bottom(); } else { header('Location:pub.php?a=register&error='.urlencode($msg)); } break; case 'regsubmit2': // ----------------------- RegSubmit 2 -------------------------- $tmpfnx=$_POST['code']; $fn='data/regtmp/'.$tmpfnx.'.txt'; list($nick,$email,$pwd,$server)=explode('|',file_get($fn)); mysql_select_db(dbname($server)); createlayout_top('HackTheNet - Account anlegen'); echo '
'; $country=$_POST['country']; # IST DAS LAND VOLL ? START $c=GetCountry('id',$country); $subnet=$c[subnet]; $r=db_query('SELECT `id` FROM `pcs` WHERE `ip` LIKE \''.mysql_escape_string($subnet).'.%\';'); $cnt=mysql_num_rows($r); $xip=$cnt+1; if($xip > 254) { @unlink('data/regtmp/'.$tmpfnx.'.txt'); echo '

Sorry

Das gewählte Land ist schon "voll"! Bitte such dir ein anderes Land aus!

'; echo '
'.LF.'
'; createlayout_bottom(); exit; } # IST DAS LAND VOLL ? X_END file_put($fn,$nick.'|'.$email.'|'.$pwd.'|'.$country.'|'.$server); if($nick=='' || $email=='' || $pwd=='' || $country=='' || $server=='') { simple_message_single('FEHLER AUFGETRETEN!','error'); exit; } $body='Hallo '.$nick.'!'.LF."\n".'Du hast dich bei HTN.LAN angemeldet!'; $body.=' Hier sind deine Zugangsdaten!'.LF."\n".'Nickname: '.$nick."\n".'Passwort: '.$pwd."\n"."\n".'Bevor du deinen'; $body.=' neuen Account nutzen kannst, musst du ihn aktivieren! Rufe dazu die folgende URL in deinem Browser auf:'.LF."\n"; /*if($localhost) $body.='aktivieren

';*/ $body.="\n"; if(@mail($email,'Dein HTN.LAN Account',$body,'From: HTN.LAN ')) { readfile('data/pubtxt/regok.txt'); } else { echo nl2br($body); } echo '
'.LF.''; createlayout_bottom(); break; case 'regactivate': // ----------------------- RegActivate -------------------------- if(strlen($_GET[code])<>REG_CODE_LEN) { simple_message('Keine Hackversuche bitte!'); exit; } $fn='data/regtmp/'.$_GET['code'].'.txt'; if(file_exists($fn)==false) { simple_message('Ungültiger Registrierungscode!'); } else { $a=explode('|',file_get($fn)); list($nick,$email,$pwd,$country,$server)=explode('|',file_get($fn)); unlink($fn); mysql_select_db(dbname($server)); if(getuser($nick,'name')!==false) { simple_message('Ein Benutzer mit diesem Nicknamen existiert bereits!'); } $tableinfo=GetTableInfo('users',dbname($server)); $autoindex=$tableinfo['Auto_increment']; $r=addpc($country,$autoindex); if($r!=false) { $ts=time(); if ($only_big_accounts) { db_query('INSERT INTO users(name, email, password, pcs, liu, lic, clusterstat, login_time, bigacc)'.'VALUES(\''.mysql_escape_string($nick).'\',\''.mysql_escape_string($email).'\',\''.md5($pwd).'\', \''.mysql_escape_string($r).'\', \''.mysql_escape_string($ts).'\', \''.mysql_escape_string($ts).'\', 0, \''.mysql_escape_string($ts).'\',\'yes\');'); } else { db_query('INSERT INTO users(name, email, password, pcs, liu, lic, clusterstat, login_time, bigacc)'.'VALUES(\''.mysql_escape_string($nick).'\',\''.mysql_escape_string($email).'\',\''.md5($pwd).'\', \''.mysql_escape_string($r).'\', \''.mysql_escape_string($ts).'\', \''.mysql_escape_string($ts).'\', 0, \''.mysql_escape_string($ts).'\',\'no\');'); } $ownerid=mysql_insert_id(); db_query('UPDATE pcs SET owner=\''.mysql_escape_string($ownerid).'\', owner_name=\''.mysql_escape_string($nick).'\', owner_points=0, owner_cluster=0, owner_cluster_code=\'\' WHERE id='.mysql_escape_string($r)); db_query('INSERT INTO rank_users VALUES(0, '.mysql_escape_string($ownerid).', \''.mysql_escape_string($nick).'\', 0, 0);'); $rank=mysql_insert_id(); db_query('UPDATE users SET rank='.mysql_escape_string($rank).' WHERE id='.mysql_escape_string($ownerid).';'); /*setcookie('ref_user'); setcookie('regc1','yes',time()+24*60*60); $dummy=reloadsperre_CheckIP(true); # IP speichern */ createlayout_top('HackTheNet - Account aktivieren'); echo '

Account aktivieren

'; echo '

Account aktiviert!

'; echo '

Herzlichen Glückwunsch!
Dein Account wurde aktiviert!
Du kannst dich jetzt auf der Startseite einloggen!

'; } else { createlayout_top(); echo '

Account aktivieren

'; echo '

Sorry

Das gewählte Land ist schon "voll"! Bitte such dir ein anderes Land aus!

'; } echo '
'.LF.'
'; createlayout_bottom(); } break; case 'newpwdsubmit': // ----------------------- NEW PWD SUBMIT -------------------------- $usrname=strtolower(trim($_REQUEST['nick'])); $email=strtolower(trim($_REQUEST['email'])); $server=(int)$_POST['server']; if($server<1 || $server>2) $server=1; mysql_select_db(dbname($server)); if(check_email($email)===true) { $usr=getuser($usrname,'name'); if($usr!==false) { if($email==strtolower($usr[email])) { $pwd=generateMnemonicPassword(); db_query('UPDATE users SET password=\''.md5($pwd).'\' WHERE id=\''.mysql_escape_string($usr['id']).'\';'); if(@mail($email,'Zugangsdaten für HTN.LAN',"\n".'http://www.htn-lan.com/'."\n".'Benutzername: '.$usr['name'].LF.'Passwort: '.$pwd."\n",'From: HTN.LAN ')) { db_query('UPDATE users SET sid=\'\' WHERE id=\''.mysql_escape_string($usr['id']).'\' LIMIT 1;'); unset($usr); simple_message_single('Das neue Passwort wurde an Deine Email-Adresse geschickt!'); } else { # simple_message('Beim Verschicken der Email trat ein Fehler auf!'); // 1. Alte Version simple_message_single('Neues Passwort: '.$pwd); // 1. Neue Version /*if($_SERVER[HTTP_HOST]==localhost) echo '
Neues Passwort: '.$pwd;*/ // 1. Wird nicht mehr gebraucht } } else { unset($usr); simple_message_single('Falsche Email-Adresse!'); } } else { unset($usr); simple_message_single('Benutzername unbekannt!'); } } else { unset($usr); simple_message_single('Email-Adresse ungültig!'); } break; case 'stats_old': // ----------------------- STATS -------------------------- createlayout_top('HackTheNet - Statistik'); echo '
'."\n"; echo '

Statistik

'."\n"; if(mysql_select_db($database_prefix)) { $uinfo=gettableinfo('users',$database_prefix); $pcinfo=gettableinfo('pcs',$database_prefix); $cnt1=$uinfo['Rows']; $cnt2=$pcinfo['Rows']; $cnt=$cnt2-$cnt1; $cnt3=(int)@file_get('data/_server1/logins_'.strftime('%x').'.txt'); $cnt4=GetOnlineUserCnt($server); echo '

Allgemein

'; $fn='data/_server1/logins_'.strftime('%Y%m%d',time()-86400).'.txt'; if(file_exists($fn)) { $cnt=(int)file_get($fn); echo ''.LF.''.LF.''.LF.''."\n"; } echo '
Registrierte User: '.$cnt1.'
Computer: '.$cnt2.'
Spieler online: '.$cnt4.'
Logins heute: '.$cnt3.'
Logins gestern:'.$cnt.'
'."\n"; } echo "

Erweitert

"; include("statistik/index.php"); echo "\n".'
'; createlayout_bottom(); break; case 'stats': // ----------------------- STATS -------------------------- createlayout_top(); if(mysql_select_db($database_prefix)) { $uinfo=gettableinfo('users',$database_prefix); $pcinfo=gettableinfo('pcs',$database_prefix); $cnt1=$uinfo['Rows']; $cnt2=$pcinfo['Rows']; $cnt=$cnt2-$cnt1; $cnt3=(int)file_get('data/_server1/logins_'.strftime('%Y%m%d').'.txt'); $cnt4=GetOnlineUserCnt($server); echo '

Allgemein

'; $fn='data/_server1/logins_'.strftime('%Y%m%d',time()-86400).'.txt'; if(file_exists($fn)) { $cnt=(int)file_get($fn); echo ''.LF.''.LF.''.LF.''."\n"; } echo '
Registrierte User: '.$cnt1.'
Computer: '.$cnt2.'
Spieler online: '.$cnt4.'
Logins heute: '.$cnt3.'
Logins gestern:'.$cnt.'
'."\n"; } echo "

Erweitert

"; include("statistik/index.php"); echo "\n".'
'; createlayout_bottom(); break; case 'deleteaccount': // ----------------------- DELETE ACCOUNT -------------------------- $code=$_GET['code']; $x=@file_get('data/regtmp/del_account_'.$code.'.txt'); if($x) { $x=explode('|',$x); mysql_select_db(dbname($x[1])); if($usr=@delete_account($x[0])) { db_query('INSERT INTO logs SET type=\'deluser\', usr_id=\''.mysql_escape_string($usr['id']).'\', payload=\''.mysql_escape_string($usr['name']).' '.mysql_escape_string($usr['email']).' self-deleted\';'); simple_message('Account '.$usr['name'].' ('.$usrid.') gelöscht!'); } else { simple_message('Account '.$usr['name'].' existiert nicht!'); } } else simple_message('Ungültiger Account-Lösch-Code!'); break; default: // ----------------------- STARTSEITE -------------------------- if (!$htnlan_installed) { header("Location: install.php"); } else { createlayout_top('HTN.LAN'); include('data/pubtxt/startseite.php'); createlayout_bottom(); } } /* function listnews($file) { $f = fopen($file,'r'); $blub = fread($f,65535); fclose($f); $p = xml_parser_create(); xml_parse_into_struct($p,$blub,$values,$index); xml_parser_free($p); $pointer = 0; for($i=0;$i<=sizeof($values);$i++) { if($values[$i]['tag']=='TITLE') { $linktitle[$pointer] = $values[$i]['value']; } if($values[$i]['tag']=='LINK') { $linkurl[$pointer] = $values[$i]['value']; $pointer++; } } echo ''; for($i=1;$i<=sizeof($linktitle);$i++) { if($linkurl[$i]!='' && $linktitle[$i]!='') echo ''; } echo "
'.$linktitle[$i].'
"; }*/ function generateMnemonicPassword() { $charset[0] = array('a', 'e', 'i', 'o', 'u'); $charset[1] = array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'w', 'x', 'z'); $specials=array('!', '$', '%', '&', '/', '=', '?', '+', '-', '.', ':', ',', ';', '*', '#','_'); $password = ''; for ($i = 1; $i <= 2; $i++) { $password .= $charset[$i % 2][array_rand($charset[$i % 2])]; } $password.=$specials[mt_rand(0,count($specials)-1)]; for ($i = 1; $i <= 2; $i++) { $password .= $charset[$i % 2][array_rand($charset[$i % 2])]; } for ($i = 1; $i <= 2; $i++) { $password .= rand(0, 9); } $password.=$charset[1][mt_rand(0,count($charset[1])-1)]; return $password; } ?>