У меня есть метод 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