Как показать другую корзину покупок из разных сеансов пользователя / пользователя?

#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'] и получить информацию о товарах, используя идентификаторы, расположенные в корзине.

Надеюсь, это поможет.