пропадают значения из сессионного массива

zerok

Новичок
пропадают значения из сессионного массива

проблема такая

на одно странице кладу в массив сессии данные
на другой куда постится форма проверяю а было ли поле разрешено для редактирования на той странице.


соотв в переменную кладется 131 значение

на той странице оказывается что значений не 131 а 95 .

куда пропадают, понять не могу.

сначала грешила на имена переменных, стала заворачивать имена переменных в md5
ничего не изменилось.

всю голову сегодня сломала.

ваши предположения ?
 

Фанат

oncle terrible
Команда форума
чтобы убедиться в том, что дело не в сессиях, пишешь текстовый скрипт, который на одной странице пишет в сессию 200 переменных, а на другой - достает.

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

zerok

Новичок
нашли ....

муж (перловый и сишный програмист) матерился на людей создавших язык, на котором от этого может сломаться сессия.

у меня у одной функции /наверное с серьезного бодуна или недосыпа/ в качестве переменной была объявлена $_SESSION;
 

zerok

Новичок
как оно было объявлено ?

функция вызывалась с передачей в нее аргументов
гыгыгы:

function_name($some_per1, $some_per2, $_SESSION);


function function_name($per1, $per2, $_SESSION) {
}
 

dimagolov

Новичок
только это по идее не должно было влиять на доступность переменных сессии нигде кроме как внутри ф-ии function_name
 

zerok

Новичок
*****

покажи в какой части матчасти написано что имена перменных в функциях не могу совпадать с глобальными?
 

dimagolov

Новичок
*****, точно, никак вообще на доступность откуда бы ни было $_SESSION и даже на доступность отдельных значений это не влияет


zerok, что-то еще было что ломало сессию :)
 

zerok

Новичок
ничего не было больше
вытерли сессию из параметра и из переменной функции и тут же все заработало

-~{}~ 15.09.07 02:50:

к слову она в эту перменную даже ничего не писала / нахрена я ее туда передавала если не использовала ???? /

последовательное присваивание значений сессии с проверкой в другом окне появилось или нет выявило строку с вызовом описаной функции оторвали переменную
завелось тут же .
 

dimagolov

Новичок
Почему у меня тогда везде any печатается? И после первого раза пишет "already present"?
PHP:
<?php
session_start();
if (!isset ($_SESSION['test'])) {
	echo 'init new'.'<BR />';
	$_SESSION['test'] = 'any';
} else
	echo 'already present'.'<BR />';
echo "before function_name ";
echo($_SESSION['test'] .'<BR />');
function_name($some_per1, $some_per2, $_SESSION);
echo "after function_name ";
echo($_SESSION['test'] .'<BR />');


function function_name($per1, $per2, $_SESSION) {
	echo "function_name ";
	echo($_SESSION['test'] .'<BR />');
} 
?>
 

zerok

Новичок
*****

я вообще то хотела увидеть место в документации на php.net

Андрейка

что, получилось повторить?

dimagolov
после вызова этой функции уже в сесию не пишется до нее еще пишется
 

Фанат

oncle terrible
Команда форума
zerok
пожалуйста, там никто ничего не скрывает. можно зайти и увидеть
 

zerok

Новичок
*****

дядь, я смотрела и не я одна.

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

Фанат

oncle terrible
Команда форума
Читай лучше в факе. А то в мане действительно сложно понять.
если же настаиваешь на документации, то придется не искать фразу "переменные функции не могут совпадать с глобальными", а читать и думать.
 

zerok

Новичок
*****


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

ладно, пойжу еще раз почитаю главу про переменные и функции
 

Фанат

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