Проблема с многошаговой формой php с использованием сеансов

У меня проблема с многошаговой формой php. Мне нужно выполнить переключение между разными формами только на одной странице. На этой странице я переключаю следующие случаи:

 $_SESSION["profilo"]= $_POST["profilo"];
 $_SESSION["periodic"]=$_POST["periodic"];      
 $_SESSION["from"]=$_POST["from"];
 $_SESSION["to"]=$_POST["to"];
 $_SESSION["weekdays"]=$_POST["weekdays"];
 $_SESSION["start"]=$_POST["start"];
 $_SESSION["expire"]=$_POST["expire"];
$step = 1;

if(!isset($_SESSION["profilo"]))
{

    $step = 1;
}
elseif(isset($_SESSION["profilo"]) && !isset($_SESSION["periodic"]))
{

    $step = 2;
}
elseif(isset($_SESSION["periodic"]) && !isset($_SESSION["start"]))
{

    $step = 3;

}
else
{

    $step = 4;
}

затем я выполняю инструкцию

WriteForm($step);

это функция, которая переключает различные формы в зависимости от значения $step. Проблема в том, что после второго шага я возвращаюсь к первой форме вместо перехода к шагу 3. Я думаю, проблема в том, что когда я второй раз нажимаю «Отправить», во второй форме у меня нет «профиля». "поле: следующее выполнение моей страницы перезаписывает $_SESSION["profilo"] значением NULL, возвращаясь к шагу 1 из-за цикла if. Как я могу решить эту проблему?

РЕДАКТИРОВАТЬ: для информации: форма 1 имеет только поле «профиль», форма 2 имеет «периодический», «от», «до», «будние дни», форма 3 имеет «начало», «истечение».


person breathe0    schedule 31.05.2011    source источник
comment
Похоже, вы уже определили возможную причину?   -  person AJ.    schedule 31.05.2011
comment
но не решение! может быть, это действительно просто, но я клянусь, что не могу найти его. мозг сгорел ;)   -  person breathe0    schedule 31.05.2011
comment
Первое, что я бы посоветовал вам изменить, это переместить операторы $_SESSION[$a] = $_POST[$a] в одно из ваших условий IF, если только вы не ожидаете, что ВСЕ эти поля будут отправлены на КАЖДОЙ странице. Вы должны устанавливать их только на шагах, где у клиента есть возможность установить/обновить эти значения.   -  person AJ.    schedule 31.05.2011
comment
я пробовал но не получилось! затем mrkmg указал мне путь, однако спасибо за ваше время!   -  person breathe0    schedule 31.05.2011