хранить множественные значения в сеансе php - PullRequest
2 голосов
/ 08 февраля 2010

Я пишу скрипт на php, который очень похож на корзину покупок. то, что я хочу сделать, - это когда пользователи добавляют определенный продукт, мне нужно добавить productid в переменную сеанса без сохранения в базе данных. таким образом, каждый раз, когда пользователь добавляет продукт, productctid должен быть сохранен в переменной сеанса.

а когда пользователь оформляет заказ, мне нужно получить все продукты и показать?

Может кто-нибудь, пожалуйста, объясните мне, как это сделать? Потому что я в порядке с 1 продуктом, но не знаю, как хранить и получать несколько значений.

любая помощь будет высоко ценится

Ответы [ 4 ]

13 голосов
/ 08 февраля 2010

Поместите Array в Session . Добавьте элементы в массив.

$_SESSION['cart'] = array();
$_SESSION['cart'][] = $apples;
$_SESSION['cart'][] = $oranges;
$_SESSION['cart'][] = $pears;

Примечание: замените $apples, $oranges и $pears на идентификаторы вашего продукта.

Вы получаете доступ к массиву, как к любому другому массиву в PHP, например, количество предметы:

echo count($_SESSION['cart']);

и итерация по элементам:

foreach($_SESSION['cart'] as $item)
{
    echo $item;
}

Вы также можете заключить Session в объект и предоставить доступ к корзине через интерфейс метода, но я оставлю это для объяснения кому-то еще.

3 голосов
/ 08 февраля 2010

Поместите в файл с именем index.php следующее и проведите тест:

<code><?php
session_start();
if(isset($_POST['product'])) {
    $products = isset($_SESSION['products']) ? $_SESSION['products'] : array();
    $products[] = $_POST['product'];
    $_SESSION['products'] = $products;
}
?>

<html>
    <body>
        <pre><?php print_r($_SESSION); ?>
3 голосов
/ 08 февраля 2010

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

$_SESSION['products']=array();
$_SESSION['products'][]='123123'
$_SESSION['products'][]='cow_34526'

и затем вы можете работать с этим как с любым другим массивом, т.е.

foreach($_SESSION['products'] as $item){
  //display or process as you wish
  }
0 голосов
/ 18 ноября 2014
$role=json_encode($checkUser1[0]);
$role2=str_replace('"','',$role);
$company=json_encode($checkUser2[0]);
$company=str_replace('"','',$company);
$_SESSION['LOGIN_STATUS']=true;
$_SESSION['UNAME']=$uname;
$_SESSION['datefrmt']='dd/mm/yy';
$_SESSION['role']=$role2;
$_SESSION['company']=$company;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...