Отличный канал https://www.youtube.com/channel/UCdnFX7mzgup9moXG2...
Сессия это хеш который хранится в куках у пользователя, при обращение пользователя к скрипту, пхп сверяет хеш и берет из файла данные этой сессии.
session_regenerate_id();
совсем не нужно.session_start();
$ip = $_SESSION['userIP'];
if (!$ip) {
$_SESSION['userIP'] = $_SERVER['REMOTE_ADDR'];
} elseif ($ip != $_SERVER['REMOTE_ADDR']) {
session_destroy();
session_start();
}