Сохранение сессий при выходе

Я новичок в PHP, пытаюсь создать простой сайт электронной коммерции. У меня есть форма входа/регистрации, и пользователь может добавлять элементы или выбирать параметры, которые будут влиять только на его/ее учетную запись. При выходе из системы я использую session_destroy(), поэтому все возвращается к значениям по умолчанию. Я также пытался использовать массивы, чтобы сохранять и добавлять элементы в массив сеансов:

 $_SESSION['user_info'] = array();
 array_push($_SESSION['user_info'],        $item1);

Я застрял в том, как выйти из системы пользователя и сохранить его информацию, в файле logout.php я отключаю сеанс следующим образом:

 session_start();
 unset($_SESSION['user_info']);
 session_destroy();

Но при повторном входе в систему ничего не сохраняется. Буду рад любой помощи.


person Oush    schedule 06.07.2017    source источник
comment
Сеансы созданы не для этого. Вам нужно сохранить корзину в другом месте, например, в базе данных.   -  person Bernhard    schedule 06.07.2017
comment
beginner in PHP...registration form Шифруете ли вы пользовательские данные с помощью стандартной библиотеки сообщества, такой как Sodium? Вы используете HTTPS для всех запросов? Хешируются ли пароли в одну сторону перед сохранением? Платформы электронной коммерции сложны и быстры. Порекомендуйте попробовать что-то немного меньшее в качестве начального проекта. Что касается элементов корзины, я бы сказал, сохраните их в таблице базы данных. отношение типа user‹-›user_items‹-›items.   -  person David J Eddy    schedule 06.07.2017
comment
Если вам нужно сохранить информацию о корзине, вы не можете уничтожить сеанс. Если сессия уничтожена, вся информация будет потеряна. Только сбросьте индекс сеанса user_info.   -  person Rafael Gadotti Bachovas    schedule 06.07.2017
comment
тебе нужна база данных мой друг   -  person Masivuye Cokile    schedule 06.07.2017


Ответы (1)


Ничего не сохраняется, потому что session_destroy() удаляет данные сеанса. Сеансы предназначены только для хранения данных, когда клиент активен или вошел в систему. Либо используйте file_put_contents для сохранения данных, либо file_get_contents для извлечения данных, либо создайте базу данных, например MySQL.

file_get_contents

MySQL

Сохранить сеанс в базе данных

person Dan Bray    schedule 17.01.2018