Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- include_once("config.php");
- @mysql_connect($_CONFIG['host'], $_CONFIG['login'], $_CONFIG['pass']) or die("Nie udało się połączyć z bazą danych");
- @mysql_select_db($_CONFIG['database']) or die("Nie udało się wybrać bazy danych");
- function getip()
- {
- if(isset($_SERVER['HTTP_CLIENT_IP']))
- {
- $ip = $_SERVER['HTTP_CLIENT_IP'];
- }
- elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
- {
- $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
- }
- else
- {
- $ip = $_SERVER['REMOTE_ADDR'];
- if($ip == "::1")
- {
- $ip = "127.0.0.1";
- }
- }
- return $ip;
- }
- class account
- {
- public $userMsg = '';
- public $userName = '';
- public $latestVersion = '';
- public $sessionId = '';
- public $downloadTicket = '';
- //==================================================================================================================== LOGIN VIA MINECRAFT.NET
- public function loginoriginal($login, $pass)
- {
- include 'config.php';
- $login = urlencode ( $login );
- $pass = urlencode ( $pass );
- /*//Połączenie
- $minecraftSocket = fopen("https://login.minecraft.net/?user=$login&password=$pass&version=12", "rb");
- //Stworzenie miejsca na dane
- $minecraftOutput = '';
- //Oczekiwanie na odpowiedź
- while (!feof($minecraftSocket))
- {
- $minecraftOutput .= fgets($minecraftSocket, 128);
- }
- //Zamknięcie połączenia
- fclose($minecraftSocket);
- */
- $minecraftOutput = file_get_contents("https://login.minecraft.net/?user=$login&password=$pass&version=12");
- if(strpos($minecraftOutput, 'Bad login') === false)
- {
- // split values
- $minecraftValues = explode(':', $minecraftOutput);
- if(count($minecraftValues) > 0){
- $this->userName = $minecraftValues[2];
- $this->latestVersion = $minecraftValues[0];
- $this->sessionId = $minecraftValues[3];
- $this->downloadTicket = $minecraftValues[4];
- //Wczytanie pliku
- $file = File("users.txt");
- if(count($file) == 1)
- {
- //Sprawdzenie czy czasem nicku już nie ma w pliku.
- $sFile = unserialize($file[0]);
- $nowy = true;
- for($i=0;$i < count($sFile);$i++)
- {
- $asd= explode("{%}",$sFile[$i]);
- if($asd[0] == $minecraftValues[2])
- {
- //Jeśli jest to wpisujemy nowy czas i adres IP;
- $sFile[$i] = $asd[0]."{%}".time()."{%}".getip();
- $nowy = false;
- }
- }
- //A jeśli nie ma to wpisujemy nowe wartości.
- if ($nowy == true)
- {
- $sFile[] = $minecraftValues[2]."{%}".time()."{%}".getip();
- }
- //I na koniec zapisujemy plik.
- $file = serialize($sFile);
- file_put_contents ( "users.txt" , $file);
- }
- return true;
- }
- }
- else
- {
- $this->userMsg = 'Błąd, złe hasło lub login.';
- return false;
- }
- }
- //==================================================================================================================== REGISTER
- public function register($nick,$pass,$mail='')
- {
- include 'config.php';
- //Wysłanie zapytania o konto
- $handle=mysql_query("SELECT * FROM ".$_CONFIG['table']." WHERE playername = '".$_POST['nick']."'");
- //Upewnienie się, czy czasem konto już nie istnieje.
- if(mysql_num_rows($handle) > 0 )
- $this->userMsg = 'Konto o tym nicku już istnieje !';
- else
- {
- //Sprawdzenie czy hasło jest prawidłowe
- //-- MA 6 ZNAKÓW ------------------ NIE ZAWIERA ZNAKÓW SPECJALNYCH
- if (strlen($pass) >= 6 && ctype_alnum($pass))
- {
- if(filter_var($mail, FILTER_VALIDATE_EMAIL) == true || $mail == '')
- {
- if(file_get_contents('http://www.minecraft.net/haspaid.jsp?user='.$nick) == "false")
- {
- //====================================================================== PROCES TWORZENIA KONTA
- //Uzyskanie liczby kont (do pozyskania nowego ID)
- $handle = mysql_query("SELECT * FROM ".$_CONFIG['table']." ORDER BY ID DESC LIMIT 0 , 1");
- $r = mysql_fetch_assoc($handle);
- $id = $r['ID'] + 1;
- //Zaszyfrowanie hasła
- $salt = substr(hash('whirlpool', uniqid(rand(), true)), 0, 12);
- $hash = hash('whirlpool', $salt . $pass);
- $saltPos = (strlen($pass) >= strlen($hash) ? strlen($hash) : strlen($pass));
- $hashed = substr($hash, 0, $saltPos) . $salt . substr($hash, $saltPos);
- //Wysłanie zapytania do bazy, o stworzenie konta.
- $handle=mysql_query("INSERT INTO ".$_CONFIG['table']."(ID, playername, password, email, registerdate, registerip ,lastip) VALUES ('".$id."','".$nick."','".$hashed ."','".$mail."','".date("Y-m-d H:i:s")."','".getip()."','".getip()."')");
- return true;
- }
- else
- {
- $this->userMsg = "Konto jest kontem premium ! Zaloguj sie przez minecraft.net !";
- return false;
- }
- }
- else
- {
- $this->userMsg = "Podany adres e-mail jest niepoprawny !";
- return false;
- }
- }
- else
- {
- $this->userMsg = "Hasło jest nieprawidłowe ! Musi ono mieć minimalnie 6 znaków oraz składać się wyłączenie z liter i cyfr !";
- return false;
- }
- }
- }
- //==================================================================================================================== LOGIN
- function login ($nick, $pass)
- {
- include 'config.php';
- //Wysłanie zapytania o konto
- $handle=mysql_query("SELECT * FROM ".$_CONFIG['table']." WHERE playername = '".$nick."'");
- //Upewnienie się że konto istnieje.
- if(mysql_num_rows($handle) == 1 )
- {
- //Pobranie danych konta.
- $r = mysql_fetch_assoc($handle);
- //Zahashowanie hasła
- $saltPos = (strlen($pass) >= strlen($r['password']) ? strlen($pass) : strlen($pass));
- $salt = substr($r['password'], $saltPos, 12);
- $hash = hash('whirlpool', $salt . $pass);
- $hashed = substr($hash, 0, $saltPos) . $salt . substr($hash, $saltPos);
- //Jeśli hasło zgadza się z tym w bazie = utworzenie cookies.
- if( $r['password'] == $hashed )
- {
- $this->userName = $r['playername'];
- //Wczytanie pliku
- $file = File("users.txt");
- if(count($file) >= 0)
- {
- //Sprawdzenie czy czasem nicku już nie ma w pliku.
- $sFile = unserialize($file[0]);
- $nowy = true;
- for($i=0;$i < count($sFile);$i++)
- {
- $asd= explode("{%}",$sFile[$i]);
- if($asd[0] == $r['playername'])
- {
- //Jeśli jest to wpisujemy nowy czas i adres IP;
- $sFile[$i] = $asd[0]."{%}".time()."{%}".getip();
- $nowy = false;
- }
- }
- //A jeśli nie ma to wpisujemy nowe wartości.
- if ($nowy == true)
- {
- $sFile[] = $r['playername']."{%}".time()."{%}".getip();
- }
- //I na koniec zapisujemy plik.
- $file = serialize($sFile);
- file_put_contents ( "users.txt" , $file);
- }
- return true;
- }
- else
- {
- $this->userMsg = "Hasło nie zgadza się.</br>";
- return false;
- }
- }
- else
- {
- $this->userMsg = "Konto nie istnieje lub wystąpił problem z połączeniem.";
- return false;
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment