Настройка сессии по шагам - PullRequest
       3

Настройка сессии по шагам

0 голосов
/ 10 октября 2019

Можно ли установить несколько элементов сеанса на один и тот же сеанс в разное время? У меня есть 2 класса, и каждый класс должен установить 2 элемента сессии. Я получаю пустой массив. Я использую session_start() на каждой странице.

Кроме того, я могу успешно установить сеанс из одного класса, но получить пустой массив при настройке из каждого класса.

// User class
$_SESSION['user'] = array('id' => 1);
$_SESSION['user'] = array('name' => 'Tim Miller');

// Part class
$_SESSION['user'] = array('model' => '12311');
$_SESSION['user'] = array('part' => 'AA34F');

РЕДАКТИРОВАТЬ:

Вот массив, который я хотел бы создать:

Array (
  [user] => Array (
    [id] => 1
    [name] => Tim Miller
    [model] => 12311
    [part] => AA34F
    [order] => 119026
    [serial] => 12001923S3
  )
)

Элементы 0 и 1 должны быть установлены в пользовательском классе Элементы 2-3 должныбыть установленным в классе детали Элементы 4-5 должны быть установлены в серийном классе

1 Ответ

0 голосов
/ 10 октября 2019

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

Вы должны писать session_start () поверх каждого файла, где вам нужно использовать сессию.

session_start();

// User class
$_SESSION['user'][] = array('id' => 1);
$_SESSION['user'][] = array('name' => 'Tim Miller');

// Part class
$_SESSION['user'][] = array('model' => '12311');
$_SESSION['user'][] = array('part' => 'AA34F');

print_r( $_SESSION['user'] );

Вывод выглядит так:

Array
(
    [0] => Array
        (
            [id] => 1
        )

    [1] => Array
        (
            [name] => Tim Miller
        )

    [2] => Array
        (
            [model] => 12311
        )

    [3] => Array
        (
            [part] => AA34F
        )
)

Вам решать, как вы хотите создать этот массив.

РЕДАКТИРОВАТЬ:

Чтобы получить желаемый формат вывода и добавить значения вПозже массив в разных файлах вы можете попробовать как:

// Your code here!
session_start();

// User class
$_SESSION['user'][] = array('id' => 1, 'name' => 'Tim Miller');

// Part class
$key = -1
$key = array_search( 1, array_column($_SESSION['user'], 'id') );
// Here 1 in array_search is id of user your can use $id to add data to correct user's by id.

if( $key > -1 ) {
    $_SESSION['user'][ $key ] = array_merge( $_SESSION['user'][ $key ], array('model' => '12311', 'part' => 'AA34F') );
}


print_r( $_SESSION['user'] );

Это даст вам следующий вывод:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Tim Miller
            [model] => 12311
            [part] => AA34F
        )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...