Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- include('DB.php');
- class Account
- {
- public static function isLoggedIn()
- {
- if (isset($_COOKIE['SNID']))
- {
- if (DB::query('SELECT user_id FROM login_tokens WHERE token=:token',array(':token' => sha1($_COOKIE['SNID']))))
- {
- $userid = DB::query('SELECT user_id FROM login_tokens WHERE token=:token',array(':token' => sha1($_COOKIE['SNID'])))[0]['user_id'];
- if (isset($_COOKIE['SNID_']))
- {
- return $userid;
- }
- else
- {
- $cstrong = True;
- $token = bin2hex(openssl_random_pseudo_bytes(64, $cstrong));
- $user_id= DB::query('SELECT user_id FROM login_tokens WHERE token = :token',array(':token' => sha1($_COOKIE['SNID'])))[0]['user_id'];
- DB::query('INSERT INTO login_tokens VALUES (\'\',:user_id, :token)',array(':token'=>sha1($token), ':user_id'=>$user_id));
- DB::query('DELETE FROM login_tokens WHERE token=:token',array(':token' => sha1($_COOKIE['SNID'])));
- return $userid;
- }
- }
- }
- return false;
- }
- public static function register($username,$password,$email)
- {
- if (!empty($username) && !empty($password) && !empty($email))
- {
- if (strlen($username) <= 32 && strlen($password) <= 64 && strlen($email) <= 254)
- {
- if (strlen($username) >= 3 && strlen($password) >= 6)
- {
- $cstrong = True;
- $id = bin2hex(openssl_random_pseudo_bytes(5, $cstrong));
- $ip1 = $_SERVER['REMOTE_ADDR'];
- $ip2 = $_SERVER['HTTP_X_FORWARDED_FOR'];
- if (empty($ip2))
- {
- $ip2 = '0.0.0.0';
- }
- if(!DB::query('SELECT id FROM users WHERE id=:id', array(':id' => $id)))
- {
- if (!DB::query('SELECT username FROM users WHERE username=:username', array(':username' => $username)))
- {
- if (!DB::query('SELECT email FROM users WHERE email=:email', array(':email' => $email)))
- {
- $register = DB::query('INSERT INTO users (id,username,password,email,ip1,ip2) VALUES (:id,:username,:password,:email,:ip1,:ip2)', array(':id' => $id,':username' => $username,':password' => sha1($password),':email' => $email,':ip1' => $ip1,':ip2' => $ip2));
- return 'register:success';
- }
- else
- {
- return 'register:passwordtaken';
- }
- }
- else
- {
- return 'register:usernametaken';
- }
- }
- else
- {
- register($username,$password,$email);
- return 'register:idrestart';
- }
- }
- else
- {
- return "register:short";
- }
- }
- else
- {
- return 'register:long';
- }
- }
- else
- {
- return 'register:empty';
- }
- }
- public static function login($username,$password)
- {
- if (!empty($username) && !empty($password))
- {
- if (DB::query('SELECT username FROM users WHERE username=:username',array(':username' => $username)))
- {
- $id = DB::query('SELECT id FROM users WHERE username=:username',array(':username' => $username))[0][0];
- if (DB::query('SELECT password FROM users WHERE id=:id',array(':id' => $id))[0][0] == sha1($password))
- {
- $cstrong = True;
- $token = bin2hex(openssl_random_pseudo_bytes(64, $cstrong));
- print('1:'.$token);
- DB::query('INSERT INTO login_tokens VALUES (\'\',:user_id, :token)',array(':token' => sha1($token), ':user_id' => $id));
- setcookie("SNID",$token, time() + 60 * 60 * 24 * 7, '/', NULL, NULL, TRUE);
- setcookie("SNID_",'1', time() + 60 * 60 * 24 * 3, '/', NULL, NULL, TRUE);
- return 'login:success';
- }
- else
- {
- return 'login:fail2';
- }
- }
- else
- {
- return 'login:fail1';
- }
- }
- else
- {
- return 'login:empty';
- }
- }
- public static function getUserData($what,$id)
- {
- if (!empty($what) && !empty($id))
- {
- $result = DB::query('SELECT '.$what.' FROM users WHERE id=:id',array(':id' => $id));
- return $result;
- }
- }
- public static function setUserData($what,$value,$id)
- {
- if (!empty($what) && !empty($value) && !empty($id))
- {
- if ($what == 'profileimage')
- {
- $client_id = '88f530e6df8074a';
- $access_token = '800e8edb3b5657b5f2fb20316bc062501cb97841';
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
- curl_setopt($ch, CURLOPT_POST, TRUE);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Client-ID '.$client_id.' \n Authorization: Bearer '.$access_token));
- curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'image' => $value ));
- $result = curl_exec($ch);
- $result = json_decode($result,true);
- if (isset($result['data']['status']))
- {
- if ($result['data']['status'] == 400)
- {
- return false;
- }
- }
- else
- {
- $result = $result['data']['link'];
- if(DB::query('UPDATE users SET profile_img = :value WHERE id=:id',array(':id' => $id, ':value' => $result)))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- }
- else if ($what == 'password')
- {
- if(DB::query('UPDATE users SET password = :value WHERE id=:id',array(':id' => $id, ':value' => sha1($value))))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- if ($value != DB::query('SELECT '.$what.' FROM users WHERE id=:id',array(':id' => $id)))
- {
- if(DB::query('UPDATE users SET '.$what.' = :value WHERE id=:id',array(':id' => $id, ':value' => $value)))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- return true;
- }
- }
- }
- }
- public static function getAllUsers($what)
- {
- if (!empty($what))
- {
- $result = DB::query('SELECT '.$what.' FROM users');
- return $result;
- }
- else
- {
- return false;
- }
- }
- public static function logoutUser()
- {
- $id = account::isLoggedIn();
- print($id);
- if ($id)
- {
- print(1);
- if (DB::query('DELETE FROM login_tokens WHERE user_id=:id AND token=:token',array(':id' => $id,':token' => sha1($_COOKIE['SNID']))))
- {
- print(2);
- unset($_COOKIE['SNID']);
- unset($_COOKIE['SNID_']);
- setcookie('SNID', null, -1, '/');
- setcookie('SNID_', null, -1, '/');
- return 'logout:success';
- }
- else
- {
- print(3);
- return 'logout:sqlfailed';
- }
- }
- else
- {
- print(4);
- return 'logout:notloggedin';
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement