【问题标题】:Problem with a php multistep form using sessions使用会话的 php 多步表单问题
【发布时间】:2011-05-31 19:11:38
【问题描述】:

我的 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 步的第一个表单。我认为问题是我第二次点击“提交”时,在我的第二个表单中我没有“个人资料” " 字段:我的页面的以下执行使用 NULL 值覆盖 $_SESSION["profilo"],返回到 if 循环的第 1 步。 我该如何解决这个问题?

编辑: 仅供参考:form1 有“profile”字段,form2 有“periodic”、“from”、“to”、“weekdays”,form3 有“start”、“expire”。

【问题讨论】:

  • 听起来您已经确定了可能的原因?
  • 但不是解决方案!也许它真的很简单,但我发誓我找不到它。大脑融合 ;)
  • 我建议您更改的第一件事是将您的 $_SESSION[$a] = $_POST[$a] 语句移动到您的一个 IF 条件中,除非您希望所有这些字段在每一页上提交。您应该只在客户有机会设置/更新这些值的步骤上设置它们。
  • 我试过但没用!然后 mrkmg 给我指路了,不过谢谢你的时间!

标签: php forms session multi-step


【解决方案1】:
 if(isset($_POST["profilo"])) $_SESSION["profilo"]= $_POST["profilo"];
 if(isset($_POST["periodic"])) $_SESSION["periodic"]=$_POST["periodic"];      
 if(isset($_POST["from"])) $_SESSION["from"]=$_POST["from"];
 if(isset($_POST["to"])) $_SESSION["to"]=$_POST["to"];
 if(isset($_POST["weekdays"])) $_SESSION["weekdays"]=$_POST["weekdays"];
 if(isset($_POST["start"])) $_SESSION["start"]=$_POST["start"];
 if(isset($_POST["expire"])) $_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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2012-04-15
    • 2010-11-24
    相关资源
    最近更新 更多