Сессии и массивы - не понимаю

  • Автор темы Автор темы Rasta
  • Дата начала Дата начала

Rasta

Guest
Сессии и массивы - не понимаю

Извините, если тупой вопрос, но поиск по форуму ответа не дал.

Есть двухмерный массив, н-р, $cart[$i]["product"]
Как мне сохранить такую переменную в сессии?

$_SESSION["cart"][$i]["product_id"] - не работает.
 
поставь error_reporting(E_ALL);
кстати, почему
PHP:
$i = 1;
$_SESSION['a'][$i]['z'] = 99;
выдаёт
Warning: Cannot use a scalar value as an array
а если $i равна любому числу, отличному от 1, то предупреждение вылазиет через раз?
 
berkut, почитай, как должны обзываться элементы массива в переменных сеанса. Я сейчас не могу найти, но где-то в мане прочел, что имена элементов суперглобального массива не должны состоять из одних цифр. может, я и не прав, надеюсь, гуру ткнут и меня и тебя носом в ману. Хотя все логично, если register_globals = on, то как будет вести себя $_SERVER['1']?
 
4m@t!c
у него не _SERVER[1] , а _SERVER['a']....
.....
berkut, а вообще да, $_SESSION = array('a' => array(1 => array('z' => 99))).... у тебя имя массива - число, меняй имя , или заключай $i в кавычки, если так уже необходимо именно такая структура массива...
 
да необходимости никакой. это просто пример.
Если нельзя использовать скалярные велечины, то почему ошибку выводит только на числе 1? Если поставить любое другое число - ошибок нет, причём время от времени появляются, в зависимости от того как звёзды встанут. Вот в этом и был мой вопрос.
Хотя все логично, если register_globals = on, то как будет вести себя $_SERVER['1']?
в данном случае как-раз не $_SERVER['1'] a $_SERVER[1]
и при чём тут register globals? Как эта опция может влиять на
$_SERVER['1']
или
$_SERVER[1]
?
 
Правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания Это можно отобразить регулярным выражением: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
 
Сверху