PHP change session_id - PullRequest
       1

PHP change session_id

0 голосов
/ 17 сентября 2018

У моего сервера возникли проблемы с равномерным распределением session_id.Что вызвало, что пользователь вошел в систему с неправильными учетными записямиТак как я не ожидал, что это неправильное поведение заняло много времени.

Поэтому я начал присваивать session_id самостоятельно.Я нашел некоторые не очень хорошо документированные функции и протестировал их, пока они не сработали.Я уверен, что так делать нельзя, но до сих пор это работало.

Казалось, мой провайдер изменил некоторые настройки, и вдруг он больше не работает.

Вот мой код.Каждый раз, когда кто-то посещает какую-либо страницу, эта функция должна проверять, вошел ли он в систему, и выдавать ему новый session_id()

session_start();

function isLoggedIn(){
    if (isset($_SESSION["user_id"]) and isset($_SESSION["user_agent"])) {
        if ($_SESSION["user_agent"] != md5($_SERVER['HTTP_USER_AGENT'])) {
            $loggedIn = FALSE;
        }else{
            $loggedIn = TRUE;
        }
    }
    else {
         $loggedIn = FALSE;
    }
    if ($loggedIn == FALSE) {
        header("Location: login.php?displayinfo=1");
        die("<br /><br /> you are not logged in");
    }


    // $newid = session_create_id($_SESSION["user_id"]); // isn't working for some reason
    $newid =  md5($_SESSION["user_id"]) . random_str(20);

    // Set new custome session ID
    session_id($newid);
    session_commit();

    session_start();

    return $loggedIn;
}

Может быть, вы можете дать мне несколько советов, как мне сделать это правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...