Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2015
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. private static function get_current_user_id() {
  2. /*
  3. (Null) -> Int
  4. Fetches the current user id
  5. */
  6. $mysqli = Database::connection();
  7. if (!isset($_SESSION['user_id']) || !is_numeric($_SESSION['user_id'])) {
  8. //Check for a cookie
  9. if (!empty($_COOKIE['token']) && is_numeric($_COOKIE['user_id'])) {
  10. $token = $_COOKIE['token'];
  11. $user_id = $_COOKIE['user_id'];
  12. $sql = "SELECT token FROM users WHERE user_id = '$user_id'";
  13. $result = $mysqli->query($sql)
  14. or die($mysqli->error);
  15. if ($result->num_rows == 1) {
  16. //Attempt to verify the token
  17. $token_hashed = mysqli_fetch_row($result)[0];
  18. $verify = password_verify($token, $token_hashed);
  19. if ($verify) {
  20. //Create the session again
  21. $_SESSION['user_id'] = $user_id;
  22. return $user_id;
  23. }
  24. else {
  25. return 'None';
  26. }
  27. }
  28. else {
  29. return 'None';
  30. }
  31. }
  32. else {
  33. return 'None';
  34. }
  35. }
  36. else {
  37. return $_SESSION['user_id'];
  38. }
  39. }
  40.  
  41. public static function get_current_user() {
  42. /*
  43. (Null) -> User
  44. Returns the current user object, if no user is logged in returns an anonymous user object
  45. */
  46. try {
  47. $user_id = self::get_current_user_id();
  48. if (is_numeric($user_id)) {
  49. $mysqli = Database::connection();
  50. $sql = "SELECT username FROM users WHERE user_id = '$user_id'";
  51. $result = $mysqli->query($sql)
  52. or die ($mysqli->error);
  53. if ($result->num_rows == 1) {
  54. $username = mysqli_fetch_row($result)[0];
  55. $user = new CurrentUser(array(
  56. 'user_id' => $user_id,
  57. 'username' => $username)
  58. );
  59. }
  60. else {
  61. throw new UnexpectedValueException;
  62. }
  63. }
  64. else {
  65. throw new UnexpectedValueException;
  66. }
  67. }
  68. catch (UnexpectedValueException $e) {
  69. $user = new AnonymousUser;
  70. }
  71. finally {
  72. return $user;
  73. }
  74. }
  75.  
  76. <?php
  77. function __autoload($class_name) {
  78. /*
  79. Last chance for PHP script to call a class name
  80. */
  81. if ($class_name == 'ProposedDate' || 'BadmintonDate') {
  82. require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/BadmintonDate.php';
  83. }
  84. require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/$class_name.php";
  85. }
  86. $user = User::get_current_user();
  87. print_r($user);
  88. ?>
  89.  
  90. <?php
  91. session_start();
  92. require_once 'test_login.php';
  93. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement