Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Не добавляется элемент в массив сессии
Ничего не добавляется... может, потому что массив изначально пустой, а array_push добавляет только в конец непустого массива? Ладно, пробую сразу вот так
$_SESSION['favnodes'] = $fav_node = array(1,2,3);
тоже ничего...
На всяк случай, в $_POST['idn'] передается число, идентификатор статьи или чего нить там еще.
В чем засада?
OrmaJever
Отправлено: 12 Марта, 2016 - 11:50:12
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
В вашем коде кроме пустого массива в сесию ничего не добавляется. Что вы там хотите увидеть?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Шмайсер
Отправлено: 12 Марта, 2016 - 12:00:54
Новичок
Покинул форум
Сообщений всего: 38
Дата рег-ции: Окт. 2010
Помог: 0 раз(а)
OrmaJever пишет:
В вашем коде кроме пустого массива в сесию ничего не добавляется. Что вы там хотите увидеть?
а как тогда сделать, чет не соображу..
смысл в чем - изначально массив может быть пустой, но может в нем и есть чтото (1,2,3) например. Если есть событие POST , я проверяю in_array на наличие в массиве idшника, приходяшего с ПОСТ, и если его нет дописываю в конец массива.
Но вот что-то все никак не получаетсо)))
freelsd
Отправлено: 12 Марта, 2016 - 12:33:39
Гость
Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015
Помог: 1 раз(а)
Шмайсер пишет:
OrmaJever пишет:
В вашем коде кроме пустого массива в сесию ничего не добавляется. Что вы там хотите увидеть?
а как тогда сделать, чет не соображу..
смысл в чем - изначально массив может быть пустой, но может в нем и есть чтото (1,2,3) например. Если есть событие POST , я проверяю in_array на наличие в массиве idшника, приходяшего с ПОСТ, и если его нет дописываю в конец массива.
Но вот что-то все никак не получаетсо)))
Это не си, и $fav_node это не массив переменных сессии, это совершенно другой массив. Все что вы добавите в массив $fav_node будет только там.
Шмайсер
Отправлено: 12 Марта, 2016 - 12:40:05
Новичок
Покинул форум
Сообщений всего: 38
Дата рег-ции: Окт. 2010
Помог: 0 раз(а)
Если сделать вот так (изначально не пустой массив записывается в сессию)
и попытаться добавить новый элемент в конец, то все ок
но потом, если поменять 777 на 888 и запустить скрипт, то в сессии 888 не запишется в массив после 777, а перезапишет 777 на 888
не могу понять))) ведь array_push по идее должна записывать новый элемент в конец массива
freelsd
Отправлено: 12 Марта, 2016 - 13:38:03
Гость
Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015
Помог: 1 раз(а)
У вас все время создается массив, заполненный значениями. Можно проверить, существует ли массив, перед тем как пытаться его создать, например:
Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 74 раз(а)
Шмайсер Если у вас мой код вызовет ошибку, то перепишете объявления массивов (вместо [] напишете array() в соответствующих местах) И не забывайте - всё, что приходит в скрипт извне, подлежит фильтрации! ))
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.