Я застрял в расстроенной колее. У меня есть система аутентификации (построенная с нуля), которая использует одноэлементный объект.
Объект singleton в основном управляет безопасностью сеансов и имеет функции, которые защищают от перехвата сеансов и других злонамеренных действий.
Эти функции зависят от данных элемента.
Теперь проблема в том, что PHP, похоже, отбрасывает эти одноэлементные объекты каждый раз, когда пользователь обновляет или переходит на новую страницу.
Вот прототип класса сессий:
class session extends login{
public $sessionid;
private $fingerprint;
public static $temp=0;
public static $s_instance = NULL;
public static function s_getinstance(){
if (!isset(session::$s_instance) || !isset(session::$sessionid)) {
$c = __CLASS__;
if(isset(session::$s_instance)) {
session::$s_instance = 0;
}
session::$s_instance = new $c;
self::regenerate_id_name();
self::$temp +=1;
}
return session::$s_instance;
}
}
Последняя функция проверяет элемент данных ($ s_insntance), если он равен NULL, он создает объект и возвращает его вместе с управлением действиями, связанными с созданием нового сеанса.
Если элемент данных не равен NULL, он возвращает существующий объект.
Или теоретически это то, что он должен делать. Однако каждый раз, когда я захожу на новую страницу и вызываю функцию s_getinstance, она по какой-то причине пытается создать новый объект, и старые данные теряются. Пожалуйста, помогите мне здесь.