rendered paste body<?php/*PHP Class : BClass.php;Author : Xn;eMail : xn.exelsior@gmail.com;Comment : Functions of the "challenge" website;Date : 16/07/2007 03:52;Deux tables MySQL :1) CREATE TABLE `bot_userdata` (`id` INT NOT NULL AUTO_INCREMENT ,`owner` VARCHAR( 200 ) NOT NULL ,`password` VARCHAR( 200 ) NOT NULL ,`email` VARCHAR( 200 ) NOT NULL ,`right` TINYINT NOT NULL ,INDEX ( `id` )) ENGINE = MYISAM ;2)CREATE TABLE `bot_botdata` (`id` INT NOT NULL ,`botname` VARCHAR( 200 ) NOT NULL ,`bothost` VARCHAR( 200 ) NOT NULL ,`bottype` VARCHAR( 200 ) NOT NULL ,`botchans` VARCHAR( 255 ) NOT NULL ,`isaccepted` BOOL NOT NULL ,INDEX ( `id` )) ENGINE = MYISAM ;3)CREATE TABLE `bot_pools` ( `lettre` varchar(1) NOT NULL, `pseudo` varchar(200) NOT NULL, KEY `lettre` (`lettre`)) ENGINE=MyISAM*/class BClass { private $BHost = 'localhost'; private $BLogin = 'root'; private $BPass = ''; public $BIsConnected = false; private function DbConnect() { $MySQLink = mysql_connect($this->BHost,$this->BLogin,$this->BPass); if (is_resource($MySQLink)) $this->BIsConnected = true; return $this->BIsConnected; } private function DbQuery($BQuery) { if (!$this->BIsConnected) $this->DbConnect(); $BResult = mysql_query($BQuery); return $BResult; } public function BStrip($BString) { $BChars = array(';','(',')','/','\\',']','[','+','=','^','<','>','&','"'); foreach($BChars as $BNotAllowed) $BString = str_replace($BNotAllowed,'',$BString); return $BString; } public function BCheckNumBots($BId) { $Query = $this->DbQuery('SELECT COUNT(*) AS NbrBots FROM test.bot_botdata WHERE id="'.$BId.'" AND isaccepted="1"'); $ResQuery = mysql_fetch_array($Query); return $ResQuery['NbrBots']; } public function BAddBot($BId,$BotName,$BotHost,$BotType,$Chan1,$Chan2,$Chan3,$Chan4,$Chan5) { $BBotName = $this->BStrip($BotName); $BBotHost = $this->BStrip($BotHost); $BBotType = $this->BStrip($BotType); $BChan1 = $this->BStrip($Chan1); $BChan2 = $this->BStrip($Chan2); $BChan3 = $this->BStrip($Chan3); $BChan4 = $this->BStrip($Chan4); $BChan5 = $this->BStrip($Chan5); $Chans = $BChan1; if (!empty($BChan2)) { $Chans .= ','.$BChan2; } if (!empty($BChan3)) { $Chans .= ','.$BChan3; } if (!empty($BChan4)) { $Chans .= ','.$BChan4; } if (!empty($BChan5)) { $Chans .= ','.$BChan5; } if ($BBotName != $BotName) { return 0; } else if ($this->IsBotIsFree($BBotName)) { return 6; } else if ($BBotHost != $BotHost) { return 1; } else if ($BBotType != $BotType) { return 2; } else if (empty($BChan1)) { return 3; } else if (($BChan1 != $Chan1) OR ($BChan2 != $Chan2) OR ($BChan3 != $Chan3) OR ($BChan4 != $Chan4) OR ($BChan5 != $Chan5)) { return 4; } else { $Query = $this->DbQuery('INSERT INTO test.bot_botdata VALUES("'.$BId.'","'.$BBotName.'","'.$BBotHost.'","'.$BBotType.'","'.$Chans.'",2,"")'); return 5; } } public function BIsLogged() { if (!empty($_SESSION['userid']) && !empty($_SESSION['right']) && !empty($_SESSION['username']) && !empty($_SESSION['email'])) { return true; } } public function BGetAccount() { $Query = $this->DbQuery('SELECT COUNT(*) AS nbrAccount FROM test.bot_userdata'); $ResQuery = mysql_fetch_array($Query); return $ResQuery['nbrAccount']; } public function BGetBots($BId) { if ($BId == 1) { $Query = $this->DbQuery('SELECT COUNT(*) AS nbrBots FROM test.bot_botdata WHERE isaccepted="1"'); $ResQuery = mysql_fetch_array($Query); return $ResQuery['nbrBots']; } else if ($BId == 2) { $Query = $this->DbQuery('SELECT COUNT(*) AS nbrBots FROM test.bot_botdata WHERE isaccepted="2"'); $ResQuery = mysql_fetch_array($Query); return $ResQuery['nbrBots']; } else if ($BId == 3) { $Query = $this->DbQuery('SELECT COUNT(*) AS nbrBots FROM test.bot_botdata WHERE isaccepted="4"'); $ResQuery = mysql_fetch_array($Query); return $ResQuery['nbrBots']; } } public function BPurge() { $Query = $this->DbQuery('DELETE FROM test.bot_botdata WHERE isaccepted=4'); return 1; } public function LoadData($ToEdit) { $Query = $this->DbQuery('SELECT * FROM test.bot_botdata WHERE botname="'.$ToEdit.'"'); $ResQuery = mysql_fetch_array($Query); return $ResQuery; } public function BGetMyBots($BIdSession) { $Query = $this->DbQuery('SELECT * FROM test.bot_botdata WHERE id="'.$BIdSession.'"'); while ($ResQuery = mysql_fetch_array($Query)) { $MyBot = '<table>'; $MyBot .= '<tr><td width="400px"><b>'.$ResQuery['botname'].'</b><br /><hr></td></tr><tr><td>'; $MyBot .= 'Host du bot : '.$ResQuery['bothost'].'<br /><br />'; $MyBot .= 'Type du bot : '.$ResQuery['bottype'].'<br /><br />'; $MyBot .= 'Chan(s) : '.$ResQuery['botchans'].'<br /><br />'; $MyBot .= 'Statut : '.$this->GetStatus($ResQuery['isaccepted']).'<br /><br />'; if (!empty($ResQuery['comment'])) $MyBot .= 'Commentaire : <span style="color:red">'.stripslashes($ResQuery['comment']).'</span>'; $MyBot .= '</td></tr></table><div align="center"><img src="img/delimit.png" /></div>'; echo $MyBot; } } public function BGetWaiting() { $Query = $this->DbQuery('SELECT * FROM test.bot_botdata WHERE isaccepted=2'); while ($ResQuery = mysql_fetch_array($Query)) { $QueryOwner = $this->DbQuery('SELECT * FROM test.bot_userdata WHERE id='.$ResQuery['id']); $ResQueryOwner = mysql_fetch_array($QueryOwner); $MyBot = '<table>'; $MyBot .= '<tr><td width="400px"><b>'.$ResQuery['botname'].'</b> (<a href="?x=11&ed='.$ResQuery['botname'].'">Mod</a>)<br /><hr></td></tr><tr><td>'; $MyBot .= 'Host du bot : '.$ResQuery['bothost'].'<br /><br />'; $MyBot .= 'Type du bot : '.$ResQuery['bottype'].'<br /><br />'; $MyBot .= 'Chan(s) : '.$ResQuery['botchans'].'<br /><br />'; $MyBot .= 'Owner : '.$ResQueryOwner['owner'].'<br /><br />'; $MyBot .= 'eMail : '.$ResQueryOwner['email'].'<br /><br />'; $MyBot .= 'Autres bots : '.$this->BOtherBot($ResQuery['id'],$ResQuery['botname']).'<br /><br />'; $MyBot .= 'Statut : '.$this->GetStatus($ResQuery['isaccepted']).'<br /><br />'; if (!empty($ResQuery['comment'])) $MyBot .= 'Commentaire : <span style="color:red">'.stripslashes($ResQuery['comment']).'</span>'; $MyBot .= '</td></tr></table><div align="center"><img src="img/delimit.png" /></div>'; echo $MyBot; } } public function BOtherBot($ID,$BotNameWaiting) { $Query = $this->DbQuery('SELECT * FROM test.bot_botdata WHERE id='.$ID); while ($Res = mysql_fetch_array($Query)) { if ($Res['botname'] != $BotNameWaiting) { if (empty($Bots)) { $Bots = '<br /> - <a href="?x=11&ed='.$Res['botname'].'">'.$Res['botname'].'</a> ('.$this->GetStatus($Res['isaccepted']).')'; } else { $Bots .= '<br /> - <a href="?x=11&ed='.$Res['botname'].'">'.$Res['botname'].'</a> ('.$this->GetStatus($Res['isaccepted']).')'; } } } return $Bots; } public function BGetHisBots($BotName) { $BotName = $this->BStrip($BotName); $Query = $this->DbQuery('SELECT * FROM test.bot_botdata WHERE botname LIKE "%'.$BotName.'%"'); while ($ResQuery = mysql_fetch_array($Query)) { $MyBot = '<table>'; $MyBot .= '<tr><td width="400px"><b>'.$ResQuery['botname'].'</b> (<a href="?x=11&ed='.$ResQuery['botname'].'">Mod</a>) '; if ($_SESSION['right'] == 768) { $MyBot .= '(<a href="?x=11&del&ed='.$ResQuery['botname'].'">Delete</a>)'; } $MyBot .= '<br /><hr></td></tr><tr><td>'; $MyBot .= 'Host du bot : '.$ResQuery['bothost'].'<br /><br />'; $MyBot .= 'Type du bot : '.$ResQuery['bottype'].'<br /><br />'; $MyBot .= 'Chan(s) : '.$ResQuery['botchans'].'<br /><br />'; $MyBot .= 'Statut : '.$this->GetStatus($ResQuery['isaccepted']); $MyBot .= '<br /><br />'; if (!empty($ResQuery['comment'])) $MyBot .= 'Commentaire : <span style="color:red">'.stripslashes($ResQuery['comment']).'</span>'; $MyBot .= '</td></tr></table><div align="center"><img src="img/delimit.png" /></div>'; echo $MyBot; } } public function DelBot($BotName) { $this->DbQuery('DELETE FROM test.bot_botdata WHERE botname="'.$BotName.'"'); return 1; } public function GetStatus($BId) { if ($BId == 1) { return '<span style="color:green;"><b>Accepté</b></span>'; } else if ($BId == 4) { return '<span style="color:red;"><b>Refusé</b></span>'; } else if ($BId == 2) { return '<span style="color:grey;"><b>En attente</b></span>'; } else if ($BId == 3) { return '<span style="color:purple;"><b>Suspendu</b></span>'; } } public function UpdateRobot($BotName,$BotHost,$BotType,$BotChans,$BotStatut,$BotComment) { $BotName = $this->BStrip($BotName); $BotHost = $this->BStrip($BotHost); $BotType = $this->BStrip($BotType); $BotChans = $this->BStrip($BotChans); $query = $this->DbQuery('SELECT * FROM test.bot_botdata WHERE botname="'.$BotName.'"'); $res = mysql_fetch_array($query); if ($res['comment'] != stripslashes($BotComment) && !empty($BotComment)) { $BotComment .= ' - '.$_SESSION['username']; } $BotComment = addslashes($BotComment); $Query = $this->DbQuery("UPDATE test.bot_botdata SET bothost = '$BotHost', bottype = '$BotType', botchans = '$BotChans', isaccepted = '$BotStatut', comment = '$BotComment' WHERE botname = '$BotName'"); return 1; } public function LoadContent($BId) { $Bfiles = array( '0'=>'include/bnews.php', '1'=>'include/bregister.php', '2'=>'include/bconcours.php', '3'=>'include/whatisbot.php', '4'=>'include/regabot.php', '5'=>'include/isbotfree.php', '6'=>'include/pools.php', '7'=>'include/downs.php', '8'=>'include/tuts.php', '9'=>'include/mesbots.php', '10'=>'include/addbot.php', '11'=>'include/apsearch.php', '12'=>'include/apwaiting.php', '13'=>'include/appurge.php', '14'=>'include/appools.php', ); $NewBId = $this->BStrip($BId); if (($BId != $NewBId) OR (strlen($BId) > 2)) { exit(); } elseif (array_key_exists($BId,$Bfiles)) { include($Bfiles[$BId]); } } public function LoadMenu() { // Menu général $BMenu1 = '<img src="img/infos.png" /><br /><br />'; $BMenu1 .= '<div class="buton"><a href="?x=0">Page d\'accueil</a></div>'; $BMenu1 .= '<div class="buton"><a href="?x=2">Concours !bot!</a></div>'; $BMenu1 .= '<div class="buton"><a href="?x=3">Qu\'est-ce que #!bot!?</a></div>'; $BMenu1 .= '<div class="buton"><a href="?x=4">Enregistrer son robot</a></div>'; $BMenu1 .= '<div class="buton"><a href="?x=5">Disponibilité d\'un bot</a></div>'; $BMenu1 .= '<div class="buton"><a href="?x=6">Pools</a></div>'; $BMenu1 .= '<div class="buton"><a href="?x=7">Téléchargements</a></div>'; $BMenu1 .= '<div class="buton"><a href="?x=8">Tutoriaux</a></div>'; $BMenu1 .= '<div class="buton">Nous contacter</div>'; echo $BMenu1; // Menu de login if (!$this->BIsLogged()) { $BMenu2 = '<br /><img src="img/ident.png" /><br /><br /><div class="ident">'; $BMenu2 .= '<br /><div align="center"><table><tr><td><form method="post" action="blogin.php" />Pseudo :</td><td><input type="text" name="pseudo" size="11" /></td></tr>'; $BMenu2 .= '<tr><td>Pass :</td><td><input type="password" name="mdp" size="11" /></td></tr>'; $BMenu2 .= '<tr><td></td><td><input class="but" type="submit" value="Login!" /></td></tr>'; $BMenu2 .= '<tr><td colspan="2">Où <a class="reg" href="./index.php?x=1">enregistrez-vous</a> !</form></td></tr></table></div></div>'; echo $BMenu2; } else { $BMenu3 = '<br /><img src="img/cp.png" /><br /><br />'; $BMenu3 .= '<div class="ident"><div class="stats">Loggué en tant que : <b>'.$_SESSION['username'].'</b><br />Access : <b>'.$this->GetRight().'</b></div></div><br />'; if ($_SESSION['right'] >= 512) { $BMenu3 .= '<div class="buton"><a href="?x=11">[A] Rechercher un Bot</a></div>'; $BMenu3 .= '<div class="buton"><a href="?x=12">[A] Bots en attente</a></div>'; } if ($_SESSION['right'] == 768) { $BMenu3 .= '<div class="buton"><a href="?x=14">[A] Editer les pools</a></div>'; $BMenu3 .= '<div class="buton"><a href="?x=13">[A] Purger</a></div>'; } $BMenu3 .= '<div class="buton"><a href="?x=9">Mes robots</a></div>'; $BMenu3 .= '<div class="buton"><a href="?x=10">Ajouter un robot</a></div>'; $BMenu3 .= '<div class="buton"><a href="blogout.php"><b>Logout</b></a></div>'; echo $BMenu3; } // Menu de stats :P $BMenu4 = '<br /><img src="img/stats.png" /><br /><br /><div class="ident"><div class="stats">'; $BMenu4 .= 'Utilisateurs : <b>'.$this->BGetAccount().'</b><br />'; $BMenu4 .= 'Robots Acceptés : <b>'.$this->BGetBots(1).'</b><br />'; $BMenu4 .= 'Robots en Attente : <b>'.$this->BGetBots(2).'</b><br />'; $BMenu4 .= 'Robots Refusés : <b>'.$this->BGetBots(3).'</b><br /></div></div>'; echo $BMenu4; } public function GetRight() { $BRights = array(1=>'Membre',512=>'Admin lv1',768=>'Admin lv2'); if (!empty($_SESSION['right'])) { return $BRights[ $_SESSION['right'] ]; } } public function EnumPool() { echo '<table>'; $Query = $this->DbQuery('SELECT * FROM test.bot_pools'); while ($Res = mysql_fetch_array($Query)) { echo '<tr><td><b>'.$Res['lettre'].'</b></td><td>'.$Res['pseudo'].'</td></tr>'; } echo '</table>'; return true; } public function EnumPoolEdit() { echo '<form name="poolupdate" method="post"><table>'; $Query = $this->DbQuery('SELECT * FROM test.bot_pools'); while ($Res = mysql_fetch_array($Query)) { echo '<tr><td><b>'.$Res['lettre'].'</b></td><td><input type="text" name="'.$Res['lettre'].'" value="'.$Res['pseudo'].'" /></td></tr>'; } echo '<tr><td></td><td><input type="submit" name="updatepool" value="Update" /></td></tr></table></form>'; return true; } public function PoolUpdate() { $Beg = ord('a'); while ($Beg <= ord('z')) { $this->DbQuery('UPDATE test.bot_pools SET pseudo="'.$_POST[ chr($Beg) ].'" WHERE lettre="'.chr($Beg).'"'); $Beg++; } } /* public function PoolUpdate() { $this->DbQuery('DELETE FROM test.bot_pools'); $Beg = ord('a'); while ($Beg <= ord('z')) { $this->DbQuery('INSERT INTO test.bot_pools VALUES ("'.chr($Beg).'","test")'); $Beg++; } }*/ public function BLogin($BUser,$BPass) { $BUser = $this->BStrip($BUser); $BPass = md5($this->BStrip($BPass)); $Query = $this->DbQuery('SELECT * FROM test.bot_userdata WHERE owner="'.$BUser.'"'); $ResQuery = mysql_fetch_array($Query); if ($ResQuery['password'] == $BPass) { $_SESSION['userid'] = $ResQuery['id']; $_SESSION['right'] = $ResQuery['right']; $_SESSION['username'] = $ResQuery['owner']; $_SESSION['email'] = $ResQuery['email']; return true; } } public function IsBotIsFree($BotName) { $BotName = $this->BStrip($BotName); $Query = $this->DbQuery('SELECT * FROM test.bot_botdata WHERE botname="'.$BotName.'" AND isaccepted="1"'); if (mysql_num_rows($Query) > 0) { return 1; } } public function BRegister($BOwner,$BPassword,$BEmail) { $BOwner = $this->BStrip($BOwner); $BPassword = md5($this->BStrip($BPassword)); $BEmail = $this->BStrip($BEmail); // Verify if the account is already taken $Query = $this->DbQuery('SELECT * FROM test.bot_userdata WHERE owner="'.$BOwner.'"'); if (mysql_num_rows($Query) > 0) return 1; // Verify if the email is already taken $Query = $this->DbQuery('SELECT * FROM test.bot_userdata WHERE email="'.$BEmail.'"'); if (mysql_num_rows($Query) > 0) return 2; // Everything okay ? Register :) $Query = $this->DbQuery("INSERT INTO test.bot_userdata VALUES('','$BOwner','$BPassword','$BEmail','1')"); return 0; } public function BLogout() { if ($this->BIsLogged()) { unset($_SESSION); session_destroy(); return true; } }}$BSite = new BClass();?>