Почему мои переменные сеанса исчезают после вызова session_regenerate_id (true)?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему мои переменные сеанса исчезают после вызова session_regenerate_id (true)?

Сообщение Anonymous »

У меня есть метод CreateSession (), который вызывает session_regenerate_id (true); Чтобы предотвратить фиксацию сеанса: < /p>
class Session {
public string $id;
public string $username;
public string $role;

public function __construct(){
session_start();
$this->id = $_SESSION['id'] ?? 0;
$this->role = $_SESSION['role'] ?? 'guest';
$this->username = $_SESSION['username'] ?? 'Guest User';
}

public function updateSession(array $user){
$this->createSession($user);
}

public function createSession(array $user){
session_regenerate_id(true);
$_SESSION['id'] = $user['id'];
$_SESSION['username'] = strstr($user['email'], '@', true);
$_SESSION['expire'] = time() + 30 * 60;
$_SESSION['role'] = $user['role'];
}

public function destroySession(){
$_SESSION = [];
$cookie_data = session_get_cookie_params();
setCookie(session_name(), '', time() - 42000, $cookie_data['path'], $cookie_data['domain'], $cookie_data['httponly']);
session_destroy();
}
}
< /code>
После вызова этой функции все предыдущие данные сеанса, по-видимому, потеряны. < /p>
Это поведение нормальным? обработчик Могут ли настройки хранения сеанса повлиять на это?

Подробнее здесь: https://stackoverflow.com/questions/795 ... ate-idtrue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»