У меня проблема с многошаговой формой 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. Я думаю, проблема в том, что когда я нажимаю «Отправить» во второй раз, во второй форме у меня нет «profilo». "field: следующее выполнение моей страницы перезаписывает $ _SESSION [" profilo "] со значением NULL, возвращаясь к шагу 1 по причине цикла if.
Как я могу решить эту проблему?
EDIT:
для информации: у form1 есть только поле "profile", у form2 есть "period", "from", "to", "daysdays", form3 имеет "start", "expire".