Как получить данные, в каком состоянии сессия заканчивается в joomla 2.5?

Привет, я работаю над модулем заброшенной корзины в магазине joomla 2.5.8, который я разработал с помощью добродетелиmart 2.0.14.

Теперь я могу найти некоторые связанные данные из таблицы сеансов joomla, но я не могу найти, на каком этапе истекает срок действия сеанса (например, пользователь закрывает браузер или завершает работу на 1-м шаге оформления заказа или пользователь завершает работу или закрывает браузер перед оформлением заказа process) Я имею в виду состояние пользователя при закрытии или выходе из браузера.

Поэтому, пожалуйста, помогите мне или помогите мне получить состояние пользователя, когда он / она закрыл браузер.


person Anandkumar Mehta    schedule 08.05.2013    source источник
comment
docs.joomla.org/   -  person SMacFadyen    schedule 18.05.2013


Ответы (2)


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

Если вы действительно хотите узнать статус закрытия браузера пользователя, вам нужно написать какую-то специальную функцию javascript, чтобы определить, когда браузер закрывается, и вызвать сервер ajax-запросом для истечения сеанса или какой-либо другой функции.

person Nagarjun    schedule 24.05.2013
comment
спасибо за ваш ответ... Я реализую javascript windows.onbeforeunload, но проблема в том, что это не только подсказка, когда я закрываю браузер/закрываю вкладку, но и каждый раз, когда страница выгружается, а windows.onclose или close или close() не работающий... - person Anandkumar Mehta; 25.05.2013

Вам нужен код, который делает что-то вроде этого:

private static function unserializeSession($session_data) {
    try{
        $method = ini_get("session.serialize_handler");
        $dataArr = array();
        switch ($method) {
            case "php":
                $dataArr =  self::unserialize_php($session_data);
                break;
            case "php_binary":
                $dataArr = self::unserialize_phpbinary($session_data);
                break;
            default:

                $dataArr = false;
        }
        return $dataArr;
    }
    catch (Exception $e){

        return false;
    }
}

Однако не стоит утруждать себя разработкой такого модуля. Существует множество сторонних решений, таких как Remarkety или Interamind, которые решают эту проблему за вас.

Заботиться,

person MIke    schedule 28.05.2013