Суть происходящего скрыта от моего понимания поэтому обращаюсь к гуру. Опишу примерные шаги. 1). Есть файл начальный 'index.php' на котором выставляется $_SESSION['info'], помощью формы отправляются данные на файл "db.php". 2). В файле "db.php" в зависимости от $_SESSION['info'] выполняются определенные дейсвия. 3). Создаются дополнительные переменные для сессии, к примеру $_SESSION['div'] = 'someinfo'. 4). Далее запускается функция header("Locationk.php?div=".$_SESSION['div'].""); 5). Происходит редирект на "ok.php?div=someinfo", но в сессии есть лишь самый первый $_SESSION['info'] и никаких других. Примечание: $_SESSION['div'] в примере передается и как $_GET только чтобы было понятно что перед вызовом header() такая переменная 100% существует.
Тонкости не тонкости, но с нуля переписывать чужое мне не хочеться ( да и времени не особо ) Проблема в том что в 5 шаге теряются переменные сессии кроме тех что были объявлены до попадания в скрипт "db.php".
Кстати вопрос, а почему данные передаются в массиве $_SESSION? Почему не $_POST (если форма с данными), или не $_GET ?
Код мега проблемно, даже не столько что код нельзя вылаживать, там 2 Мб + база 14 Мб. Но сам факт что весь код убирался в "ok.php" и в самом начале уже нет остальных переменных сессии, и в "db.php" тоже куча кода убиралась. Да и зачем что-то убирать или проверять в коде если 4 шаг прекрастно отрабатывает и пишет сессии в адресную строку. Содержимое "db.php" PHP: <?php session_start(); // много кода :) $_SESSION["div"] = 2008; header("Location:ok.php?div=".$_SESSION['div'].""); exit(); ?> Содержимое "ok.php" PHP: <?php session_start(); print_r($_SESSION); print_r($_GET); ?> ok.php выводит только одну сессию из index.php и $_GET['div'] Вот собственно и все...
В одном из сотни подключаемых файлов была вот такая строка session_name("main"); Короче говоря даже в чужом чудо коде можно разобраться. Кстати не спроста у меня в конце двойные кавычки, точно не могу сказазать, но помню, что при определенных обстоятельствах в call_user_func строка передается пустой если переменные не закрыть кавычками. Где-то в недрах моего винчестера даже остался этот скрипт, главное что привычка осталась.
Да просто я как-то столкнулся примерно с такой проблемой - закрывал переменную кавычками, а скрипт отказывался работать. А если кавычки убрать, то все нормально было.... Кстати, этот скриптик не пошаришь на винте? Мне так, чисто для своего интереса - чтобы потом, если что, шишки не набивать - посмотрю, что там такое может быть.
Да, всякое бывает для состояния "я в астрале". Скрипт искать очень не хочеться, так как кода немеряно :wink:. Главное знать факт в чем может быть ошибка.