All pastes #639573 Raw Edit

Unnamed

public php v1 · immutable
#639573 ·published 2007-07-30 17:50 UTC
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();?>