public static function startNewSession($username, $password, $gcm_id) { $success = true; //test if the username and password are correct if (user::isLogin($username, $password)) { //retrieve user info $user_info = user::getUserByUsername($username); $e = user::setGCM($user_info['id'], $gcm_id); $success = $success && $e; //check if user has existing session: if (session::does_user_have_session($user_info['id'])) { //remove the session $session_info = session::get_last_session_for_user_id($user_info['id']); session::delete_session_by_id($session_info['id']); } //generate a unique hash $newHash = md5(random::generateString(10)); while (!session::is_unique_hash($newHash)) { $newHash = md5(random::generateString(10)); } //create a session $res = session::add_new_session($user_info['id'], $newHash, "0"); $success = $success && $res; if (!$success) { Execute::$lastErrorMessage = "failed to add new changes to database"; Report::error(__METHOD__ . "," . __LINE__, "failed to new cahnges to database"); } return $success; } else { Execute::$lastErrorMessage = "trying to login with an incorrect username or password"; Report::warning(__METHOD__ . "," . __LINE__, "trying to login with an incorrect username or password"); return false; //trying to log in with an incorrect username or password } }
public static function salt() { return random::generateString(5); }