Advertisement
Guest User

Untitled

a guest
Mar 30th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.58 KB | None | 0 0
  1. <?php
  2. include('DB.php');
  3. class Account
  4. {
  5. public static function isLoggedIn()
  6. {
  7. if (isset($_COOKIE['SNID']))
  8. {
  9. if (DB::query('SELECT user_id FROM login_tokens WHERE token=:token',array(':token' => sha1($_COOKIE['SNID']))))
  10. {
  11. $userid = DB::query('SELECT user_id FROM login_tokens WHERE token=:token',array(':token' => sha1($_COOKIE['SNID'])))[0]['user_id'];
  12. if (isset($_COOKIE['SNID_']))
  13. {
  14. return $userid;
  15. }
  16. else
  17. {
  18. $cstrong = True;
  19. $token = bin2hex(openssl_random_pseudo_bytes(64, $cstrong));
  20. $user_id= DB::query('SELECT user_id FROM login_tokens WHERE token = :token',array(':token' => sha1($_COOKIE['SNID'])))[0]['user_id'];
  21. DB::query('INSERT INTO login_tokens VALUES (\'\',:user_id, :token)',array(':token'=>sha1($token), ':user_id'=>$user_id));
  22. DB::query('DELETE FROM login_tokens WHERE token=:token',array(':token' => sha1($_COOKIE['SNID'])));
  23. return $userid;
  24. }
  25. }
  26. }
  27. return false;
  28. }
  29.  
  30. public static function register($username,$password,$email)
  31. {
  32. if (!empty($username) && !empty($password) && !empty($email))
  33. {
  34. if (strlen($username) <= 32 && strlen($password) <= 64 && strlen($email) <= 254)
  35. {
  36. if (strlen($username) >= 3 && strlen($password) >= 6)
  37. {
  38. $cstrong = True;
  39. $id = bin2hex(openssl_random_pseudo_bytes(5, $cstrong));
  40. $ip1 = $_SERVER['REMOTE_ADDR'];
  41. $ip2 = $_SERVER['HTTP_X_FORWARDED_FOR'];
  42. if (empty($ip2))
  43. {
  44. $ip2 = '0.0.0.0';
  45. }
  46. if(!DB::query('SELECT id FROM users WHERE id=:id', array(':id' => $id)))
  47. {
  48. if (!DB::query('SELECT username FROM users WHERE username=:username', array(':username' => $username)))
  49. {
  50. if (!DB::query('SELECT email FROM users WHERE email=:email', array(':email' => $email)))
  51. {
  52. $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));
  53. return 'register:success';
  54. }
  55. else
  56. {
  57. return 'register:passwordtaken';
  58. }
  59. }
  60. else
  61. {
  62. return 'register:usernametaken';
  63. }
  64. }
  65. else
  66. {
  67. register($username,$password,$email);
  68. return 'register:idrestart';
  69. }
  70. }
  71. else
  72. {
  73. return "register:short";
  74. }
  75. }
  76. else
  77. {
  78. return 'register:long';
  79. }
  80. }
  81. else
  82. {
  83. return 'register:empty';
  84. }
  85. }
  86.  
  87. public static function login($username,$password)
  88. {
  89. if (!empty($username) && !empty($password))
  90. {
  91. if (DB::query('SELECT username FROM users WHERE username=:username',array(':username' => $username)))
  92. {
  93. $id = DB::query('SELECT id FROM users WHERE username=:username',array(':username' => $username))[0][0];
  94. if (DB::query('SELECT password FROM users WHERE id=:id',array(':id' => $id))[0][0] == sha1($password))
  95. {
  96. $cstrong = True;
  97. $token = bin2hex(openssl_random_pseudo_bytes(64, $cstrong));
  98. print('1:'.$token);
  99. DB::query('INSERT INTO login_tokens VALUES (\'\',:user_id, :token)',array(':token' => sha1($token), ':user_id' => $id));
  100. setcookie("SNID",$token, time() + 60 * 60 * 24 * 7, '/', NULL, NULL, TRUE);
  101. setcookie("SNID_",'1', time() + 60 * 60 * 24 * 3, '/', NULL, NULL, TRUE);
  102. return 'login:success';
  103. }
  104. else
  105. {
  106. return 'login:fail2';
  107. }
  108. }
  109. else
  110. {
  111. return 'login:fail1';
  112. }
  113. }
  114. else
  115. {
  116. return 'login:empty';
  117. }
  118. }
  119.  
  120. public static function getUserData($what,$id)
  121. {
  122. if (!empty($what) && !empty($id))
  123. {
  124. $result = DB::query('SELECT '.$what.' FROM users WHERE id=:id',array(':id' => $id));
  125. return $result;
  126. }
  127. }
  128.  
  129. public static function setUserData($what,$value,$id)
  130. {
  131. if (!empty($what) && !empty($value) && !empty($id))
  132. {
  133. if ($what == 'profileimage')
  134. {
  135. $client_id = '88f530e6df8074a';
  136. $access_token = '800e8edb3b5657b5f2fb20316bc062501cb97841';
  137.  
  138. $ch = curl_init();
  139. curl_setopt($ch, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
  140. curl_setopt($ch, CURLOPT_POST, TRUE);
  141. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  142. curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Client-ID '.$client_id.' \n Authorization: Bearer '.$access_token));
  143. curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'image' => $value ));
  144. $result = curl_exec($ch);
  145. $result = json_decode($result,true);
  146. if (isset($result['data']['status']))
  147. {
  148. if ($result['data']['status'] == 400)
  149. {
  150. return false;
  151. }
  152. }
  153. else
  154. {
  155. $result = $result['data']['link'];
  156. if(DB::query('UPDATE users SET profile_img = :value WHERE id=:id',array(':id' => $id, ':value' => $result)))
  157. {
  158. return true;
  159. }
  160. else
  161. {
  162. return false;
  163. }
  164. }
  165. }
  166. else if ($what == 'password')
  167. {
  168. if(DB::query('UPDATE users SET password = :value WHERE id=:id',array(':id' => $id, ':value' => sha1($value))))
  169. {
  170. return true;
  171. }
  172. else
  173. {
  174. return false;
  175. }
  176. }
  177. else
  178. {
  179. if ($value != DB::query('SELECT '.$what.' FROM users WHERE id=:id',array(':id' => $id)))
  180. {
  181. if(DB::query('UPDATE users SET '.$what.' = :value WHERE id=:id',array(':id' => $id, ':value' => $value)))
  182. {
  183. return true;
  184. }
  185. else
  186. {
  187. return false;
  188. }
  189. }
  190. else
  191. {
  192. return true;
  193. }
  194. }
  195. }
  196. }
  197.  
  198. public static function getAllUsers($what)
  199. {
  200. if (!empty($what))
  201. {
  202. $result = DB::query('SELECT '.$what.' FROM users');
  203. return $result;
  204. }
  205. else
  206. {
  207. return false;
  208. }
  209. }
  210.  
  211. public static function logoutUser()
  212. {
  213. $id = account::isLoggedIn();
  214. print($id);
  215. if ($id)
  216. {
  217. print(1);
  218. if (DB::query('DELETE FROM login_tokens WHERE user_id=:id AND token=:token',array(':id' => $id,':token' => sha1($_COOKIE['SNID']))))
  219. {
  220. print(2);
  221. unset($_COOKIE['SNID']);
  222. unset($_COOKIE['SNID_']);
  223. setcookie('SNID', null, -1, '/');
  224. setcookie('SNID_', null, -1, '/');
  225. return 'logout:success';
  226. }
  227. else
  228. {
  229. print(3);
  230. return 'logout:sqlfailed';
  231. }
  232. }
  233. else
  234. {
  235. print(4);
  236. return 'logout:notloggedin';
  237. }
  238. }
  239. }
  240. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement