完成后未清除PHP电子邮件应用程序表单的缓存数据

完成后未清除PHP电子邮件应用程序表单的缓存数据,php,forms,caching,Php,Forms,Caching,我有一份申请表,它将提交的用户详细信息转发到指定的电子邮件。此表单的所有方面都很好 但是,表格开头有一个选项,询问您是否要添加联合申请人。此函数依赖于用另一个数组替换数据数组 if (isset($_SESSION['app1Title'])) { $fields = array("app2Title", "app2FirstName", "app2Surname", "app2DOB", "app2Email", "app2Telephone", "app2Mobile", "app2Mari

我有一份申请表,它将提交的用户详细信息转发到指定的电子邮件。此表单的所有方面都很好

但是,表格开头有一个选项,询问您是否要添加联合申请人。此函数依赖于用另一个数组替换数据数组

if (isset($_SESSION['app1Title'])) {
$fields = array("app2Title", "app2FirstName", "app2Surname", "app2DOB", "app2Email", "app2Telephone", "app2Mobile", "app2MaritalStatus", "app2LicenceType");
define(TITLE,"Details about your joint applicant");
}
else {
$fields = array("app1Title", "app1FirstName", "app1Surname", "app1DOB", "app1Email", "app1Telephone", "app1Mobile", "app1MaritalStatus", "app1LicenceType", "rdoJointHirer");
define(TITLE,"Details about you");
}
然而,在填写完表格后,尝试开始新的申请会将你直接转到“联合申请人”而不是从新开始

以下是提交后操作的代码

      // If everything is OK.
      if (empty($error)) {
          if (!isset($_SESSION['app1Title]'])) {
              foreach ($_POST as $key => $field)
                  $_SESSION[$key] = $field;

              if ($_POST['rdoJointHirer'] == "Yes") {
                  $_SESSION['return'] = "1";

                  header("Location: personal.php");
              }
            else
                header("Location: address.php");
        }
        else {
            foreach ($_POST as $key => $field)
            $_SESSION[$key] = $field;

            header("Location: address.php");
        }

        ob_end_clean();

        exit();
    }
    else {
        $values = post_values($fields); //Initialise all fields with their POST values
        require('forms/personal-form.php');
    }
}
}
else {
$values = blank_values($fields); //Initialise all fields as blank
require("forms/personal-form.php");
 }

如何解决此问题?

将所有$\u POST参数复制到会话变量似乎不是一个好主意-如果其中一个POST参数覆盖了内部会话变量,该怎么办。你应该只复制有效的参数。我不明白这个问题。会话变量从一次运行持续到下一次运行,这就是它们的全部意义。如果要重置会话,请删除会话变量。