Как отправить 2 массива в $_SESSION?

Можно ли отправить два однострочных массива с помощью fetch_array в $_session?

if (mysqli_num_rows($result) > 0){
    $row = mysqli_fetch_array($result);
    if ($row['user_type'] == 'admin'){
        $_SESSION['admin_name'] = $row['name'];
        header('location:admin_page.php');

Я хочу отправить $row['name'] и $row['email']

для печати через эхо на странице.

<php echo ($_SESSION['admin_name']['name']); echo '<br>'; echo ($_SESSION['admin_name']['email']); ?>

немного материала по теме

Что вам мешает их установить? $_SESSION['admin_name']['name'] = $row['name']; $_SESSION['admin_name']['email'] = $row['email'];

Markus Zeller 22.02.2024 22:19
$_SESSION['admin_name'] = $row должен иметь такой эффект
outlaw 22.02.2024 22:19

Не используйте fetch_array(), если в этом нет необходимости. Либо fetch_row(), если вам нужны числовые индексы, либо fetch_assoc(), если вам нужны именованные индексы.

Barmar 22.02.2024 22:22
$_SESSION['admin_name'] = ['name' => $row['name'], 'email' => $row['email']];
Barmar 22.02.2024 22:22

$_SESSION['admin_name'] = $row содержит другие массивы, мне нужно отфильтровать только 2 массива

Erasmo 22.02.2024 22:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш вопрос немного запутан и предполагает несколько вещей, которые вы не до конца поняли.

  • $_SESSION — это не то, чему вы «отправляете» — это не функция или служба. Это то, в чем вы храните вещи; и, более конкретно, это массив, в котором вы можете назначать вещи как элементы.
  • $row['name'] и $row['email'] в вашем примере не являются «однострочными массивами», это отдельные значения, предположительно строки. Они хранятся внутри массива, но это не имеет отношения к тому, что вы делаете с ними по отдельности.
  • $row — это массив. Если вы хотите, вы можете передать и сохранить весь этот массив, включая все, что находится внутри него. В PHP массив может содержать элементы любого типа, включая другие массивы.

Имея все это в виду, на самом деле нет ничего особенного в хранении двух вещей в $_SESSION по сравнению с хранением одной вещи - просто назначьте им обеим любые имена ключей, которые вы хотите:

$_SESSION['full_name'] = $row['name']
$_SESSION['email_address'] = $row['email'];

Или, если хотите, вы можете сохранить весь массив из базы данных в одном ключе и получить доступ к значениям внутри него позже:

$_SESSION['user'] = $row;
// ...
echo $_SESSION['user']['name'];

Или создайте новый массив и сохраните его:

$user = [
   'full_name' => $row['first_name'] . ' ' . $row['last_name'],
   'email' => $row['email'],
];
$_SESSION['user'] = $user;

Сила программирования в том, что вы можете комбинировать части в бесконечные комбинации, если правильно поймете, что представляет собой каждая часть.

Я прекрасно понимаю вашу точку зрения. однако мне нужно было отправить эти данные за один сеанс, как сообщил Бармар, они работали отлично.

Erasmo 22.02.2024 22:38

ваше 2 решения отлично подходит и для моего использования, и при необходимости может сохранять другие значения, спасибо

Erasmo 22.02.2024 22:47

Другие вопросы по теме

Ошибка пакета сеанса Gorilla: «securecookie: хэш-ключ не установлен»
Как очистить все сеансы с помощью ProtectedSessionStorage в серверном приложении blazor?
Сеанс аутентификации ведет себя не так, как предполагалось, когда он завернут в «authenticate(»auth-session») в моем приложении
Предотвращение использования токена обновления для обновления токена доступа после завершения сеанса
Пользовательский обработчик сеансов с JSON в PHP уничтожает сеанс по ошибке
Поведение сеанса Firefox 115: почему страницы не могут найти существующие идентификаторы сеанса для загрузки?
Как я могу перезагрузить все открытые страницы моего сайта, когда я нажимаю кнопку
Хранение пользовательских данных в сеансе пользователя и сохранение данных после успешного выхода из системы
Может ли моя диаграмма классов обрабатывать переключение между ролями покупателя и продавца для вошедших в систему клиентов?
Почему я не могу извлечь идентификатор из своего session.user на стороне сервера в nextjs 13