Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

теряется значение в сессии

860
08 октября 2007 года
Abell2000
138 / / 15.01.2003
Привет,
появилась очень странная проблема с сессией,
на форме есть множество текстфилдов вида:
<input type="text" name="videolink_name[]" value="<?=$_SESSION['pdp']['video'][$i]['link_name'] ?>" />

после отправки формы обработчик должен запихнуть полученные названия в сессию:
 
Код:
for($i=0;$i<count($_SESSION['pdp']['video']);$i++){
  $tmp=simpleDataCheck($_POST['videolink_name'][$i]);
  print("X--".$tmp);//<-выводим значение чтобы видеть что $tmp имеет значение
  $_SESSION['pdp']['video'][$i]['link_name']="X- $tmp -X";//<- Х- -Х чтобы понять что в сессию хоть что то пишется
}

вроде все довольно просто, если после этого сделать print_r($_SESSION); то значения для ['link_name'] будут вида "X- значение -X",
однако если зайти на страницу снова, то в сессии ['link_name'] будут вида "X- -X", т.е. теряется переданное значение.
Я просто не понимаю что происходит.
9.5K
09 октября 2007 года
snubr
70 / / 30.10.2006
У меня была другого рода проблема, но тоже с сессией. У меня перезапись шла. Так вот, поробуй назвать "значение" так, как бы ты никогда не назвал. + запихни session_start() в самое начало файла. Сразу после <?php
Ну а потом по известной схеме $_SESSION['что-то']
276
09 октября 2007 года
Rebbit
1.1K / / 01.08.2005
А помойму у тебя етот код выполняется 2 раза. Один раз когда есть Пост-данные, а один раз когда их нет. У тебя етот скрипт отвечает только за сохранение данних формы или еще и за вывод етой формы ? Возможно ты случайно пропустил чтото типа
 
Код:
if (isset($_POST['button_submit']))


2snubr. Если б сесия не стартанула, он бы не получил "X- -X". А на счет названия индекса..... бывают конечно паранормальные случаи, но причиной большенства из них есть наша криворукость. :)
15
09 октября 2007 года
shaelf
2.7K / / 04.05.2005
Криворукость и register_global... Я их недолюбливал, но после переноса одного проекта на хостинг, где он был включен и я 3 дня не мог найти баг связаный с таинственным поведением корзины (на срок особо не смотрите, опыта было мало... это был мой 3 проект:)) когда она начала жить своей жизнью (тоже с сесией было связано). Баг был в том, что у меня одна переменная называлась так же как и хранилище в сессии... примерно так
 
Код:
$cart = array('1' => 1);
$_SESSION['cart'][1] => 1;

При register_global = on это одно и тоже...
PS Зато эксперенсов вагон получил и теперь даже пароноидально в .htaccess прописываю его в off :)
860
11 октября 2007 года
Abell2000
138 / / 15.01.2003
Очень похоже, что присваивание происходит два раза, один раз с данными а второй раз без, но где оно происходит так и не понятно, для примера было поставлено print_r($_SESSION) в самое начало и конец скрипта а в место индексированного $_SESSION['var'][$i]=$_POST['var'][$i] поставлен инкрементальный массив, т.е. $_SESSION['var'][]=$_POST['var'][$i], в результате было получено следующее:
отсылаем форму: в начале $_SESSION['var']-пустой, в конце $_SESSION['var']=array([0]=data1,[1]=data2); все ок пока, теперь заходим снова на страницу: в начале $_SESSION['var']=array([0]=data1,[1]=data2,[2]='',[3]=''); как будто скрипт сработал второй раз только данных небыло.
Самое смешное, что я только что запустил все на ие и там все работает без проблем, похоже проблема в фф.
Поставил проверку что присылается не пустой пост массив и под фф заработало как надо.
Проблема решена, но осталось непонятным почему же такое происходило
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог