Работаем с сессиями

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

smart_newline

Guest
Работаем с сессиями

Ситуация (работа с Интернет-магазином):
С первой страницы на вторую передается методом POST "сумма заказа", число товара, его стоимость и др.
Сохраняем переменные в сесии:
PHP:
session_start(); 
if ($HTTP_POST_VARS["1"]>0) $_SESSION['itog1']=$itog;  //сохраняем "сумма заказа" в $itog;
//проверяем, если передавали с первой страницы, то пишем сессию, иначе ничего не делаем, чтобы не затирать значение простой перезагрузкой страницы

//сохраняем таблицу с данными заказа (переданными методом POST с первой страницы) в переменную $msgTov
$msgTov=$msgTov.$HTTP_POST_VARS["$i"]."~".$HTTP_POST_VARS["name$i"]."~".
$HTTP_POST_VARS["price$i"]."~".$HTTP_POST_VARS["num$i"]."~".$HTTP_POST_VARS["sum1$i"]."<br>";

if ($HTTP_POST_VARS["1"]>0) $_SESSION['msgTov']=$msgTov;

//после перезагрузки страницы видим значение переменной $itog, а в $msgTov - пустрое значение
Создается впечатление, что в переменную $msgTov загоняются пустые значения, т.е. не работает условие.
Причем после первой перезагрузки страницы все ОК с $msgTov, а после второй теряется значение.
Но для $itog все нормально, в чем дело, может есть ограничения на длину данных в сессии.
 

Фанат

oncle terrible
Команда форума
никаких ограничений в сессиях нет.
Запомни, пожалуйста, на будущее. Хорошо запомни:
Если у тебя что-то не раотает, то виноват код, написанный твоими руками, а не язык.
Не подумай, ято я хочу сказать плохое про твои руки, но данный совет очень поможет тете в будущем находить истинные причины ошибок

-~{}~ 26.12.04 15:38:

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

smart_newline

Guest
Originally posted by Фанат
никаких ограничений в сессиях нет.
Запомни, пожалуйста, на будущее. Хорошо запомни:
Если у тебя что-то не раотает, то виноват код, написанный твоими руками, а не язык.
Не подумай, ято я хочу сказать плохое про твои руки, но данный совет очень поможет тете в будущем находить истинные причины ошибок

-~{}~ 26.12.04 15:38:

для начала поменяй название глобальной переменной, чтобы оно не совпадало с индексом в сессии
ОК спасибо, дело было в именах.
После смены имен индексов в сессии все заработало.

2 Кром строчка передает переменную с именем "1".
Хотя лучше бы использовать Id1, но все-таки.
 

Кром

Новичок
>2 Кром строчка передает переменную с именем "1".

Вот вот. Это ты только думаешь, что это переменная с "с именем 1". На самом деле таких переменных не бывает.
 

smart_newline

Guest
Originally posted by Кром
>2 Кром строчка передает переменную с именем "1".

Вот вот. Это ты только думаешь, что это переменная с "с именем 1". На самом деле таких переменных не бывает.
Ок, спасибо за совет.
НО переменная "1" все-таки тоже работает, хотя и цифры в имени не совсем...
 

Tigr

Новичок
А можно и мануал для наглядности процитировать: "Правильное имя переменной начинается с буквы или символа подчёркивания, с последующими (в любом количестве) буквами, числами или символами подчёркивания."
 

Фанат

oncle terrible
Команда форума
smart_newline
я бы на твоем месте прислушался к словам Крома.
с постом у тебя такая вещьл проходит, а вот с сессией - уже нет
 
Сверху