Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static function get_current_user_id() {
- /*
- (Null) -> Int
- Fetches the current user id
- */
- $mysqli = Database::connection();
- if (!isset($_SESSION['user_id']) || !is_numeric($_SESSION['user_id'])) {
- //Check for a cookie
- if (!empty($_COOKIE['token']) && is_numeric($_COOKIE['user_id'])) {
- $token = $_COOKIE['token'];
- $user_id = $_COOKIE['user_id'];
- $sql = "SELECT token FROM users WHERE user_id = '$user_id'";
- $result = $mysqli->query($sql)
- or die($mysqli->error);
- if ($result->num_rows == 1) {
- //Attempt to verify the token
- $token_hashed = mysqli_fetch_row($result)[0];
- $verify = password_verify($token, $token_hashed);
- if ($verify) {
- //Create the session again
- $_SESSION['user_id'] = $user_id;
- return $user_id;
- }
- else {
- return 'None';
- }
- }
- else {
- return 'None';
- }
- }
- else {
- return 'None';
- }
- }
- else {
- return $_SESSION['user_id'];
- }
- }
- public static function get_current_user() {
- /*
- (Null) -> User
- Returns the current user object, if no user is logged in returns an anonymous user object
- */
- try {
- $user_id = self::get_current_user_id();
- if (is_numeric($user_id)) {
- $mysqli = Database::connection();
- $sql = "SELECT username FROM users WHERE user_id = '$user_id'";
- $result = $mysqli->query($sql)
- or die ($mysqli->error);
- if ($result->num_rows == 1) {
- $username = mysqli_fetch_row($result)[0];
- $user = new CurrentUser(array(
- 'user_id' => $user_id,
- 'username' => $username)
- );
- }
- else {
- throw new UnexpectedValueException;
- }
- }
- else {
- throw new UnexpectedValueException;
- }
- }
- catch (UnexpectedValueException $e) {
- $user = new AnonymousUser;
- }
- finally {
- return $user;
- }
- }
- <?php
- function __autoload($class_name) {
- /*
- Last chance for PHP script to call a class name
- */
- if ($class_name == 'ProposedDate' || 'BadmintonDate') {
- require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/BadmintonDate.php';
- }
- require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/$class_name.php";
- }
- $user = User::get_current_user();
- print_r($user);
- ?>
- <?php
- session_start();
- require_once 'test_login.php';
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement