Чтобы получить нужный опыт и хоть как-то начать двигаться, начните примерно по такой необязательной схеме:
1. В базе данных создать таблицу profiles с полями user_id, avatar_path, description, nickname
2. Создать user_profile_model.php для добавления, удаления или изменения строк таблицы
3. Создать контроллер user_profile_controller.php для работы с моделью данных
4. Создать страницу отображения профиля user_profile_view.php
5. Добавьте маршрут к профилю в ваш маршрутизатор сайта (попробуйте fastrouter, он хороший) и назначьте ему ваш user_profile_controller.php
Пользователь запрашивает страницу профиля, контроллер обращается к модели данных и получает данные, отдает их в user_profile_view.php и получает их назад обернутыми в html, после чего отдает пользователю.
Чтобы другие пользователи не лезли к друг другу в профиль, нужна идентификация обращающихся в профиль.
Давайте браузеру токен при авторизации и проверяйте его при попытках читать профиль. Ваши сценарии обязаны быть недоверчивыми в отношении всего, что касается важных данных. На хабре много статей на эту тему, есть куда закопаться