Не удаляются переменные сессий

Doberman

Новичок
Не удаляются переменные сессий

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

<?
session_start();

$_SESSION['action']='registration';

require $_SESSION['action'].".html";
?>
это типа главная страница, где инициализируется сессия, проводится соединение с базой данных (это я выкинул) ну и т.п.
он вызывает файл registration.html

<?
if (!isset($_SESSION['step']))
{
$_SESSION['step']=1;
}

if (isset($_GET['step']))
{
$_SESSION['step']=$_GET['step'];
}

require("./includes/step_".$_SESSION['step'].".inc");
?>

который в зависимости от значения переменной $_SESSION['step'] вызывает опеределенный шаг регистрации. Т.е. если пользователь только зашел то шаг=1, и подключается файл
step_1.inc

<?
if (isset($_GET['test']))
{
if ($_GET['test']==0)
{
$ERRORS[]="No entries found";

$_SESSION['errors']=$ERRORS;

header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.SID);
exit;
}

$_SESSION['test2']='test';
unset($_SESSION['test2']);

$_SESSION['test']=$_GET['test'];

$_SESSION['step']=2;

header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.SID);
exit;
}
else
{
echo('<a href="wizard.html?test=1">next</a><hr>');

echo('Errors:'.$_SESSION['errors'].'<br>');
unset($_SESSION['errors']);
}
?>

если пользователь только зашел, то сработает второе условие, и ему выведутся формы для заполнения, здесь я просто поставил ссылку на себя же с параметром test
когда пользователь нажмет на нее, то вызовется опять же этот скрипт, если все правильно увеличит шаг на 1 и запустит скрипт step_2.inc

<?
echo($_SESSION['errors'].'<br>');
echo($_SESSION['action'].'<br>');
echo($_SESSION['step'].'<br>');
echo($_SESSION['test'].'<br>');
echo($_SESSION['test2']);
?>
где ему предложат ввести что-нибудь еще, в данном случае, просто выводит данные.

так вот на первом шаге, если данные введены неправильно (к примеру test==0) шаг ее увеличивается, запускается снова этот скрипт, и выводится список ошибок(хранятся в массиве $_SESSION['errors']), которые мы формируем на стадии обработки, чтобы пользователь видел что надо исправить.
и удаляю этот массив чтобы ишибки не накапливались,
а он не удаляется.

и т.е. я ввожу wizard.html?test=0
мне выводит ссылку и ошибку, я нажимаю на ссылку и в файле step_2.inc вижу что массив с ошибками никак не удален.
там в файле step_1.inc я для теста инициализировал переменную $_SESSION['test2'] и тут же ее удалил, вот она прекрасно удалилась

никак не пойму в чем дело
php 4.2.3
 

tony2001

TeaM PHPClub
[m]session_start[/m] надо делать во всех скриптах.
читай правила форума, а потом еще раз приходи.
 

Doberman

Новичок
Почему не устраивает если я делаю session_start а главном скрипте, который подключает все остальные?
в мануале, я такого не нашел, что ставить session_start во все файлы которые я подключаю.
 

Query

Guest
Надо еще замечания читать:
Something that is implied but not elaborated at any length: session_start() has to be called from every page which belong to the site which needs "session-ing".
If it's not called, session won't work for the page.
 
Сверху