#php #session
#php #сеанс
Вопрос:
Я хочу отобразить другую корзину покупок из разных сеансов пользователя. Вот подробности :
- Клиент может добавлять товары в корзину покупок, даже если он / она еще не вошел в систему, или, другими словами, сеанс пользователя ($ _SESSION[‘User’]) не установлен.
- Форма сведений о доставке будет отображаться, если установлен сеанс пользователя ($ _SESSION[‘User’]). Если клиент хочет быстро совершить покупку и заполнить данные о доставке, клиент может нажать кнопку, чтобы продолжить быстрый магазин, не входя в систему. Я могу сделать это сам, используя эту переменную ниже, чтобы создать сеанс пользователя после того, как клиент нажал кнопку «продолжить» :
$ _SESSION[‘User’] = session_id();
Я знаю, что приведенная выше переменная создает случайный идентификатор пользователя для установки сеанса пользователя. После того, как клиент нажмет кнопку «Продолжить», система автоматически создаст сеанс пользователя, чтобы отобразилась форма сведений о доставке.
Но как, если я хочу удалить сеанс корзины, если он / она вошел в систему? Вот некоторые моменты, которые я знаю :
-
Если пользователь вошел в систему, значение $ _SESSION[‘User’] является именем пользователя клиента.
-
Но, если пользователь не вошел в систему, но имеет сеанс пользователя (после нажатия кнопки «Продолжить»), значение $ _SESSION[‘User’] является случайной строкой (потому что я использую
session_id()
функция, которая генерирует случайную строку для создания сеанса пользователя)
Дело в том, как удалить сеанс корзины из сеанса пользователя (с использованием случайного идентификатора сеанса), если пользователь вошел в систему?
** Другими словами: ** Как отобразить разные корзины покупок из разных сеансов пользователя?
Спасибо.
P.S: Извините за плохой английский и мои предложения, которые вас смущают
Комментарии:
1. Зачем смешивать корзину и сеанс пользователя? Сохраняйте корзину как свою собственную вещь :
$_SESSION['cart] = array(//...items...)
. Таким образом, вы можете изменять сеанс пользователя, сколько хотите, без какого-либо влияния на корзину.
Ответ №1:
$_SESSION
Переменная может использоваться для хранения продуктов, даже если пользователь не вошел в систему.
Итак, вы можете начать с создания массива для хранения товаров в корзине покупок:
session_start();
if(!isset($_SESSION['cart'])){
$_SESSION['cart'] = [];
}
Теперь создан пустой массив для хранения любых продуктов, которые вы в него помещаете. Вы храните товары в корзине, используя идентификатор продукта из своей базы данных:
$_SESSION['cart'][] = 5; // insert the product with id 5
Когда вы хотите оформить заказ из корзины, вы можете получить доступ к корзине клиента с помощью $_SESSION['cart']
и получить информацию о товарах, используя идентификаторы, расположенные в корзине.
Надеюсь, это поможет.